Ric*_*ola 18 php phpunit unit-testing mocking mockery
我正在锁定一种模拟对象并填充其属性的方法.以下是使用另一个对象的属性的方法示例:
class MyClass {
private $_object;
public function methodUnderTest($object) {
$this->_object = $object;
return $this->_object->property
}
}
Run Code Online (Sandbox Code Playgroud)
要单元测试这个方法我应该$object用getMockBuilder()方法创建一个模拟PHPUnit.但我找不到一种方法来模拟属性$object,只是方法.
Jso*_*owa 26
如果你有带有魔术方法的类,你可以使用:
$mock->method('__get')->with('property')->willReturn('value');
Run Code Online (Sandbox Code Playgroud)
Ric*_*ola 25
要向模拟对象添加属性,只需像通常使用对象一样设置它们:
$mock = $this->getMockBuilder('MyClass')
->disableOriginalConstructor()
->getMock();
$mock->property = 'some_value';
Run Code Online (Sandbox Code Playgroud)
$mock->property 现在会回来 'some_value'
感谢akond
我的项目的Ps,这对某些类不起作用,当我尝试调用$mock->property它时只返回NULL
| 归档时间: |
|
| 查看次数: |
14400 次 |
| 最近记录: |