我正在使用PHPUnit進行單元測試我正在使用模擬對象來測試是否使用正確的參數調用方法。這個工作正常,當我只想做一次。如何測試是否用PHPUnit和模擬對象調用了正確的參數相同的方法
$logMock = $this->getMockBuilder('Logger')
->disableOriginalConstructor()
->getMock();
//check if it updates the correct record
$logMock->expects($this->exactly(1))
->method('updateLog')
->with(456, 'some status');
現在我有這種情況,我想測試updateLog是否被第二次調用(使用不同的參數)。我看不出用'with'方法如何做到這一點。
有人有建議嗎?
我正在使用PHPUnit內部模擬功能。在我的實現(正在測試的方法)中,updateLog被調用兩次,所以我不能測試具有不同期望的方法參數。 – Fino 2010-11-21 16:21:11
根據這個網站,你可以通過使用call-index功能來實現這一點。 http://www.kreamer.org/phpunit-cookbook/1.0/mocks/set-mock-expectations-for-multiple-calls-to-a-function – treze 2010-11-21 20:05:54
謝謝! $ this-> at(index)完成這項工作。也感謝網站的鏈接,一些有用的信息。 – Fino 2010-11-21 20:46:21