У меня вопрос о PHPUnit. Я хочу, чтобы написать тест для следующего класса Message
и хочу, чтобы покрыть default: case
в моих тестах, передавая недопустимый $type
в методе isValidMessageType()
. Предположим, что разработчик добавит еще один тип, т. Е. 3, в метод isValidMessageType()
, но забывает добавить случай переключения в метод SendMessage()
, в этом случае случай по умолчанию выдаст исключение.PHPUnit - тестовый коммутатор/случаи по умолчанию
class Message
{
public function isValidMessageType($type)
{
return ($type == 1 || $type == 2)
}
public function SendMessage($type)
{
if(!$this->isValidMessageType($type)){
throw new Exception('Invalid Message type');
}
switch ($type) {
case 1:
// do something
break;
case 2:
// do something
break;
default:
throw new Exception('Invalid Message type');
}
}
}
Может кто-нибудь, пожалуйста, помогите мне, как этого достичь?
Заранее спасибо
У меня есть еще один оффтоп вопрос, Предположим, у меня есть метод GetUserDetails() в классе «Пользователь», и есть 10 возможных тестов, я должен добавлять все эти 10 тестовых случаев в testGetUserDetails() метод в классе UserTest или я пишу каждый случай в отдельных методах, таких как testGetUserDetailsCaseA(), testGetUserDetailsCaseB(), testGetUserDetailsCaseC() и т. д. и т. д.? – user2909892
Я предлагаю разрешить этот ответ и открыть новый. Так что все прочтут. – gontrollez