Я пытаюсь проверить свой класс на InvalidArgumentException, но я получаю
Тесты \ BarTest :: should_receive_parameter Отсутствует аргумент 1 для Itdc \ Foo \ Bar :: __ construct (), вызывается в /mypath/foo/tests/BarTest.php в строке 10 и определяется
- Как запустить тест PHPUnit Selenium без запуска нового окна браузера для каждой функции?
- Простые тесты ZF2 для контроллера с использованием ZfcUser
- phpunit не находит никаких тестов с тегом Director xml, но делает с (некоторыми) файлами теги
- Пример теста PHPUnit на Laravel 5.4 не работает с 404
- PHPUnit: продолжить после смерти, ожидать «умереть» или как-то справиться с die ()?
Это файл теста (BarTest.php), который я использую:
<?php namespace Tests; use Itdc\Foo\Bar; class BarTest extends \PHPUnit_Framework_TestCase { /** @test */ public function should_receive_parameter() { $this->setExpectedException('Exception'); $id = new Bar; } }
Это класс Бар:
<?php namespace Itdc\Foo; class Bar { public function __construct($a) { // do something } }
Я попытался puth setExpectedException в разделе комментариев, также пытался использовать InvalidArgumentException, но не повезло.
Любые предложения о том, что я делаю неправильно, будут оценены.
Если вы поймаете его напрямую, вы можете var_dump () исключение.
/** @test */ public function shouldThrowException() { try { new Foo(); } catch (\Exception $e) { var_dump($e); } }
Вывод:
class PHPUnit_Framework_Error_Warning#19 (9) { ...
Таким образом, источник не вызывает исключение, кроме ошибки, PHPUnit преобразует ошибку в конкретное исключение. Но это не включает в утверждения.
Попробуйте использовать конкретное имя исключения:
/** @test */ public function shouldThrowException() { $this->setExpectedException('PHPUnit_Framework_Error_Warning'); new Foo(); }