【发布时间】:2016-09-11 03:14:12
【问题描述】:
我对 PHP Mockery 框架相当陌生,并尝试在模拟的服务请求函数上测试多个函数。不同的函数发送具有不同值的相同变量名。我想测试以确保每个案例都在模拟类中。我可以使用我的模拟函数接收多个参数并将它们中的每一个都返回给测试器函数吗?
要测试的功能:
public function doSomething() {
$result = $this->serviceRequest('stuff', '/url', []);
return $result;
}
测试功能的伪代码:
public function testDoSomething() {
$service_mock = $this->mockService();
$this->assertEquals($service_mock->doSomething(), $returnedArgs);
}
理想情况下,我希望将这三个参数发送到模拟,将它们与模拟的andReturn() 或类似的东西一起在原始测试方法中断言(以验证它们被发送到模拟)。有没有一种好方法可以做到这一点,或者我缺少一种常见的做法?
现在,我的模拟看起来类似于这个伪代码(并且这 3 个参数正在关闭 $args 中进行验证):
$client->shouldReceive('serviceRequest')->withArgs($args)->once()->andReturnUsing($args)->getMock();
谢谢!
【问题讨论】:
标签: php unit-testing mocking phpunit mockery