Я хочу протестировать пример метода со скалярным типом и строгими типами в PHP7. Когда я не передаю аргумент, метод должен бросить TypeError
. PHPSpec вернуть фатальную ошибку:PHPSpec Catching TypeError в PHP7
Uncaught TypeError: Argument 1 passed to Example::test
<?php
class Example
{
public function test(string $name)
{
$this->name = $name;
}
}
class ExampleSpec extends ObjectBehavior
{
function it_is_initializable()
{
$this->shouldHaveType('Test\Example');
}
function it_check_test_method_when_not_pass_argument()
{
$this->shouldThrow('\TypeError')->during('test');
}
}
В начале я заявляю: declare(strict_types=1);
Что не так? Как проверить бросание TypeError
?
Итак, исключение бросается, но не получается? Или это не бросается, и это должно быть? – Will
Метод throw TypeError, и я хочу catch TypeError. Я хочу использовать $ this-> shouldThrow ('\ TypeError') -> во время ('test'). Этот метод в PHPSpec работает, когда метод возвращает исключение, но не TypeError. – Matrix12
Вы используете самую последнюю версию PHPSpec? – Will