PHP7では、スカラー型のヒントと厳密な型を持つサンプルメソッドをテストします。引数を渡さないと、メソッドはTypeError
を投げます。間違って何declare(strict_types=1);
PHPSpec 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');
}
}
:致命的なエラーを返すPHPSpecの? TypeError
の投げ方をテストするにはどうすればよいですか?
例外はスローされますが、キャッチされません。それとも投げられていないのでしょうか? – Will
メソッドはTypeErrorをスローし、catch TypeErrorが必要です。私は$ this-> shouldThrow( '\ TypeError') - > while( 'test')を使用します。メソッドがExceptionを返すがTypeErrorは返さない場合、PHPSpecのこのメソッドは機能します。 – Matrix12
PHPSpecの最新バージョンを使用していますか? – Will