我试图验证php7函数仅接受整数。
这是课程:
<?php
declare(strict_types=1);
class Post
{
private $id;
public function setId(int $id)
{
$this->id = $id;
}
}
这是测试:
<?php
declare(strict_types=1);
class PostTest extends \PHPUnit_Framework_TestCase
{
private function getPostEntity()
{
return new Post();
}
public function testSetId()
{
$valuesExpected = [123, '123a'];
foreach ($valuesExpected as $input) {
$this->getPostEntity()->setId($input);
}
}
}
我得到的错误是:
TypeError: Argument 1 passed to Post::setId() must be of the type integer, string given, called in /path/test/PostTest.php on line 35
是否可以验证这种错误?另外,进行这样的检查是否有意义?
最佳答案
是的,您可以像使用for any other exception一样测试TypeError
。
但是,在类型不匹配的情况下,我不会测试PHP是否发出类型错误。这种测试在PHP 7代码中变得多余。