当采用 PHP7.4 类型属性时,我们的应用程序中的代码样式更改之一是从:
if (null === $object->value) { ... }
至
if (empty($object->value)) { ... }
即使类型属性可以为空,第一个 if 语句也会抛出Error
.
下一步是编写测试。在使用empty()
检查类型化属性是否已初始化的情况下,PHPUnit 实现在assertEmpty
崩溃时出现相同的错误。
显然assertFalse(isset($obj->value)
可以,但是应该使用什么断言来检查属性是否未实例化?简化我们想要的测试:
function testInstantiatedAfterCall()
{
$obj = new Object('http://example.com');
$obj->changeContainer('Example Container');
$this->assertNull($obj->value);
// or
$this->assertEmpty($obj->value);
}