gpt4 book ai didi

PHPUnit 模拟一个对象的属性

转载 作者:IT王子 更新时间:2023-10-29 00:17:46 27 4
gpt4 key购买 nike

我正在寻找一种模拟对象并填充其属性的方法。下面是一个使用另一个对象的属性的方法示例:

class MyClass {

private $_object;

public function methodUnderTest($object) {
$this->_object = $object;
return $this->_object->property
}
}

为了对该方法进行单元测试,我应该使用 PHPUnit 中的 getMockBuilder() 方法创建一个 $object 的模拟。但是我找不到一种方法来模拟 $object 的属性,只能模拟方法。

最佳答案

要向模拟对象添加属性,您只需像通常对对象所做的那样设置它们:

$mock = $this->getMockBuilder('MyClass')
->disableOriginalConstructor()
->getMock();

$mock->property = 'some_value';

$mock->property 现在将返回 'some_value'

感谢 akond

附言对于我的项目,这不适用于某些类,当我尝试调用 $mock->property 时,它只返回 NULL

关于PHPUnit 模拟一个对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44571002/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com