【发布时间】:2013-01-28 02:40:45
【问题描述】:
我正在尝试对 Amazon 的实例元数据类进行存根,因为它调用的内部 URL 只能在 EC2 实例中使用,并且不能从外部调用。我的问题是无法识别“发送”方法。不过,“get”方法工作得很好。这是错误Fatal error: Call to undefined method Stub\Amazon\StubInstanceMetadata::send() in ...etc, etc
$stub = $this->getMockBuilder('Aws\Common\InstanceMetadata\InstanceMetadataClient')
->disableOriginalConstructor()
->getMock();
$stub->expects($this->any())
->method('get')
->will($this->returnValue($this));
$stub->expects($this->any())
->method('send')
->will($this->returnValue(json_encode(array('test' => 'value'))));
编辑:这最终是两个不同问题的组合。第一个是@fab 指出的。第二个是返回对 $this 的引用,PHPUnit 有它自己的方法,所以我应该这样做:
$stub->expects($this->any())
->method('get')
->will($this->returnSelf()); // don't use returnValue() here
【问题讨论】: