作者:happy柒月卍520 | 来源:互联网 | 2023-02-01 10:41
我正在锁定一种模拟对象并填充其属性的方法.以下是使用另一个对象的属性的方法示例:
class MyClass {
private $_object;
public function methodUnderTest($object) {
$this->_object = $object;
return $this->_object->property
}
}
要单元测试这个方法我应该$object
用getMockBuilder()
方法创建一个模拟PHPUnit
.但我找不到一种方法来模拟属性$object
,只是方法.
1> Riccardo Ced..:
要向模拟对象添加属性,只需像通常使用对象一样设置它们:
$mock = $this->getMockBuilder('MyClass')
->disableOriginalConstructor()
->getMock();
$mock->property = 'some_value';
$mock->property
现在会回来 'some_value'
感谢akond
我的项目的Ps,这对某些类不起作用,当我尝试调用$mock->property
它时只返回NULL
确保您不在原始类中使用魔术方法.
如果您的类使用魔术方法,则实际上必须模拟__get()方法并使其返回所需的输出。这就是我某些班级失败的原因