1
A
回答
1
我覺得有可能是鏈式調用(取from here)一個很好的例子
$this->someService
->getSomething()
->getSomethingElse()
->doMore($x)
->proceed()
->toGetTheFinalCall($y);
如果你想嘲笑它在傳統的方式,你會在爲每一個呼叫建立獨立的模擬考試結束了!爲了模擬一條線,它會輕鬆地增長到屏幕的一半。但等待有一種方法!
$value = 'some mocked value';
$mock = $this->getMock('ServiceClass', array('getSomething',
'getSomethingElse','doMore','proceed','toGetTheFinalCall'), array(), '', false);
$mock->expects($this->any())->method('toGetTheFinalCall')
->will($this->returnValue($value));
$mock->expects($this->any())->method($this->anything())
->will($this->returnValue($mock));
這種方式每次連續調用模擬模塊都會返回自身,因此可以根據需要連接多次。你不會檢查方法是否按照所需順序調用,但這不是一個真正的問題。最終你想要的是測試那些對調用結果做些什麼的代碼。
相關問題
- 1. 爲什麼在'有'的時候有'where'
- 2. 什麼時候File.join有用?
- 3. 什麼時候InputStream.available()有用?
- 4. 什麼時候__proto__有用?
- 5. C#多態 - 爲什麼&什麼時候
- 6. 測試用例,「什麼時候」,「什麼」和「爲什麼」?
- 7. QTreeWidget :: currentItem什麼時候沒有選擇什麼時候返回?
- 8. 什麼時候創建了app.config,什麼時候app.exe.config和有什麼區別
- 9. 什麼時候應該使用async/await,什麼時候不用?
- 10. 什麼時候使用__proto__和什麼時候使用原型
- 11. 什麼時候應該使用AWS,什麼時候不使用
- 12. intn_t什麼時候使用它,什麼時候不使用
- 13. 什麼時候使用Ruby和什麼時候使用PHP
- 14. 什麼時候使用ByteString,什麼時候不使用?
- 15. KineticJS:我什麼時候使用toImage()以及什麼時候使用緩存()
- 16. 什麼時候你把Javascript放在body裏,什麼時候在頭,什麼時候用doc.load?
- 17. 爲什麼printf在預期的時候不被調用?
- 18. 什麼時候和爲什麼我會在C++中使用abs
- 19. 爲什麼/我應該在什麼時候使用dojo模塊?
- 20. 什麼時候MethodBase.GetCurrentMethod可靠/可預測?
- 21. SQL Server CASE什麼時候不使用CASE什麼時候
- 22. ZF2什麼時候使用getServiceLocator()什麼時候不到
- 23. 什麼時候使用GWT,什麼時候不需要
- 24. 什麼時候編譯和構建,什麼時候不用.NET?
- 25. 誰,什麼時候,什麼地點,爲什麼要codereview?
- 26. 什麼時候和爲什麼沒有實現(java.lang.reflect.InvocationTargetException)發生?
- 27. 爲什麼我以往任何時候都需要在資源
- 28. 什麼時候'System.ExecutionEngineException'ocurs?
- 29. 什麼時候HTTP 404有用,什麼時候應該考慮503?
- 30. addEvents的要點/效用是什麼?它什麼時候有用?
aaaah,很好,那很好。但在這種情況下,我的猜測是你可以刪除''' - >期望($ this-> any())'''。他們只是看起來很奇怪 –
你說得對。但它可能出於文檔目的:我們明確地說「可以根據需要多次調用」。顯式比隱式更好,對嗎? :)但當然它的味道的問題。 –
是的,我也喜歡你的觀點。非常感謝:) –