I want test an example method with scalar type hinting and strict types in PHP7. When I don't pass an argument, the method should throw a TypeError
. PHPSpec return fatal error:
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');
}
}
At the beginning I declare: declare(strict_types=1);
What is wrong? How do I test throwing TypeError
?
TypeError
inherits fromBaseException
rather thanException
, so it's possible that PHPSpec is only catching Exceptions that inherit fromException
. – Moralez