我有一個簡單的用例。我想有一個設置方法,這將導致我的模仿對象返回默認值:PHPUnit Mock稍後改變預期
$this->myservice
->expects($this->any())
->method('checkUniqueness')
->will($this->returnValue(true));
但隨後一些測試,我想返回不同的值:
$this->myservice
->expects($this->exactly(1))
->method('checkUniqueness')
->will($this->returnValue(false));
我過去我曾經使用過GoogleMock for C++,它有「returnByDefault」或其他的東西來處理它。我無法弄清楚PHPUnit中是否可以這樣做(沒有api文檔,代碼很難通過閱讀來找到我想要的)。
現在,我不能只是將$this->myservice
更改爲新的模擬,因爲在設置中,我將它傳遞給其他需要嘲笑或測試的東西。
我唯一的其他解決方案是我失去了設置的好處,而不得不建立我所有的嘲笑爲每個測試。
這怎麼解決這個問題?無論如何,'setUp()'方法將被調用 – 2015-04-03 07:49:08
@MassimilianoArione是的,但是你可以重新創建你的'$ this-> myservice'並改變返回值 – rndstr 2016-01-29 13:14:47