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