Как создать исключения (exceptions) в PHPUnit?

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

от jorge , в категории: PHP , 9 месяцев назад

Как создать исключения (exceptions) в PHPUnit?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от dayna , 9 месяцев назад

@jorge 

Для создания исключений (exceptions) в PHPUnit можно использовать метод expectException внутри тестового метода.


Ниже приведен пример использования метода expectException, чтобы проверить исключение InvalidArgumentException:

1
2
3
4
5
6
7
public function testDivisionByZeroThrowsException()
{
    $this->expectException(InvalidArgumentException::class);

    $calculator = new Calculator();
    $calculator->divide(10, 0);
}


В этом примере ожидается, что при делении на ноль будет выброшено исключение InvalidArgumentException. Если исключение не будет выброшено или выбросится другое исключение, тест будет отмечен как неудавшийся.


Также можно использовать метод expectExceptionMessage, чтобы проверить сообщение, связанное с исключением. Ниже приведен пример:

1
2
3
4
5
6
7
8
public function testDivisionByZeroThrowsExceptionWithCorrectMessage()
{
    $this->expectException(InvalidArgumentException::class);
    $this->expectExceptionMessage('Cannot divide by zero');

    $calculator = new Calculator();
    $calculator->divide(10, 0);
}


В этом примере ожидается выбрасывание исключения InvalidArgumentException с сообщением "Cannot divide by zero". Если сообщение не совпадает или исключение не выбрасывается, тест не пройдет.