Одним из изменений стиля кода в нашем приложении при принятии типизированных свойств 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);
}