我正在尝试在 PHP 和 PHPUnit 中创建一个模拟对象。到目前为止,我有这个:
$object = $this->getMock('object',
array('set_properties',
'get_events'),
array(),
'object_test',
null);
$object
->expects($this->once())
->method('get_events')
->will($this->returnValue(array()));
$mo = new multiple_object($object);
暂时忽略我令人毛骨悚然的模棱两可的对象名称,我知道我所做的是
- 创建了一个模拟对象,具有 2 个配置方法,
- 配置了“get_events”方法以返回一个空白数组,以及
- 将模拟放入构造函数。
我现在想做的是配置第二种方法,但我找不到任何解释如何做到这一点的东西。我想做类似的事情
$object
->expects($this->once())
->method('get_events')
->will($this->returnValue(array()))
->expects($this->once())
->method('set_properties')
->with($this->equalTo(array()))
或类似的,但这不起作用。我该怎么做?
切线地,如果我需要配置多个测试方法,这是否表明我的代码结构很差?