PHPUnit утверждает, что было сгенерировано исключение?

Кто-нибудь знает, есть ли assert или что-то подобное, которое может проверить, было ли создано исключение в тестируемом коде?

301
задан Felipe Almeida 8 November 2013 в 04:41
поделиться

2 ответа

function yourfunction($a,$z){
   if($a<$z){ throw new <YOUR_EXCEPTION>; }
}

вот тест

class FunctionTest extends \PHPUnit_Framework_TestCase{

   public function testException(){

      $this->setExpectedException(<YOUR_EXCEPTION>::class);
      yourfunction(1,2);//add vars that cause the exception 

   }

}
0
ответ дан 23 November 2019 в 01:25
поделиться

PhpUnit является удивительной библиотекой, но этот отдельный момент немного печален. Поэтому мы можем пользоваться turbotesting-php библиотекой с открытым исходным кодом, которая имеет очень удобный метод утверждения для помощи нам тестирующий исключения. Это найдено здесь:

https://github.com/edertone/TurboTesting/blob/master/TurboTesting-Php/src/main/php/utils/AssertUtils.php

И использовать его, мы просто сделали бы следующее:

AssertUtils::throwsException(function(){

    // Some code that must throw an exception here

}, '/expected error message/');

, Если код мы вводим в анонимной функции, не выдает исключение, исключение будет выдано.

, Если код мы вводим в анонимной функции, выдает исключение, но его сообщение не соответствует ожидаемому regexp, исключение будет также выдано.

0
ответ дан 23 November 2019 в 01:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: