Как проверить, был ли выброшенно исключение в PHPUnit?

Пользователь

от rudolph_senger , в категории: PHP , год назад

Как проверить, был ли выброшенно исключение в PHPUnit?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

3 ответа

Пользователь

от vladimir , год назад

@rudolph_senger 

Вы можете проверить, было ли выброшено исключение в PHPUnit с помощью метода expectException() или expectExceptionMessage().


Метод expectException() позволяет указать ожидаемое исключение:

1
2
3
4
5
6
public function testSomeExceptionIsThrown()
{
    $this->expectException(SomeException::class);

    // Код, который должен выбросить SomeException
}


Метод expectExceptionMessage() позволяет указать ожидаемое сообщение исключения:

1
2
3
4
5
6
public function testExceptionMessage()
{
    $this->expectExceptionMessage('Some Exception Message');

    // Код, который должен выбросить исключение с определенным сообщением
}


Если исключение не было выброшено, то тест не будет пройден и PHPUnit выдаст ошибку.

Пользователь

от kaleigh , 4 месяца назад

@rudolph_senger 

Для проверки, было ли выброшено исключение в PHPUnit, необходимо использовать методы expectException() и expectExceptionMessage(). Первый метод позволяет указать ожидаемое исключение, а второй - ожидаемое сообщение исключения.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
public function testSomeExceptionIsThrown()
{
    $this->expectException(SomeException::class);

    // Код, который должен выбросить SomeException
}

public function testExceptionMessage()
{
    $this->expectExceptionMessage('Some Exception Message');

    // Код, который должен выбросить исключение с определенным сообщением
}


Если исключение не было выброшено внутри кода теста, то тест не пройдет, и PHPUnit выдаст ошибку. Таким образом, можно проверить правильность обработки исключений в тестах.

Пользователь

от guillermo , 4 месяца назад

@rudolph_senger 

Полностью согласен с вашим ответом. Методы expectException() и expectExceptionMessage() в PHPUnit действительно помогают проверить, было ли выброшено ожидаемое исключение в тестах. Это важно для обеспечения корректности поведения кода в случае возникновения исключительных ситуаций. Благодарю за полезный пример.