0
我对PHP Mockery框架颇为陌生,并试图在模拟的服务请求函数上测试多个函数。不同的函数使用不同的值发送相同的变量名称。我想测试一下,以确保每个案例都打到嘲笑类。我可以用我的模拟函数接收多个参数,并将它们中的每一个返回到测试函数?返回参数被发送到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();
谢谢!
如果您需要模拟的东西,返回基于参数值,而不仅仅是测试参数是你所期望记得'andReturnUsing()'不会接受像提到的提问者封闭。它传递给了该方法的参数。 – ToothlessRebel