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. 什麼時候ConcurrentSkipListSet有用?
- 3. 什麼時候__proto__有用?
- 4. 什麼時候File.join有用?
- 5. 測試用例,「什麼時候」,「什麼」和「爲什麼」?
- 6. 什麼時候創建了app.config,什麼時候app.exe.config和有什麼區別
- 7. 什麼時候應該使用AWS,什麼時候不使用
- 8. intn_t什麼時候使用它,什麼時候不使用
- 9. 什麼時候使用__proto__和什麼時候使用原型
- 10. 什麼時候使用Ruby和什麼時候使用PHP
- 11. 什麼時候和爲什麼我會在C++中使用abs
- 12. 什麼時候MethodBase.GetCurrentMethod可靠/可預測?
- 13. 什麼時候使用GWT,什麼時候不需要
- 14. ZF2什麼時候使用getServiceLocator()什麼時候不到
- 15. SQL Server CASE什麼時候不使用CASE什麼時候
- 16. 誰,什麼時候,什麼地點,爲什麼要codereview?
- 17. 什麼時候和爲什麼沒有實現(java.lang.reflect.InvocationTargetException)發生?
- 18. 什麼時候'System.ExecutionEngineException'ocurs?
- 19. 什麼時候HTTP 404有用,什麼時候應該考慮503?
- 20. addEvents的要點/效用是什麼?它什麼時候有用?
- 21. 什麼時候調用setDataTimeout?
- 22. 什麼時候使用uncaught_exception?
- 23. 什麼時候用短?
- 24. 什麼時候調用webview.clearData
- 25. 什麼時候DataView可用?
- 26. 什麼時候使用vtable?
- 27. 什麼時候調用robot.cleanUp()
- 28. 什麼時候使用sIFR?
- 29. JOINS什麼時候使用?
- 30. 什麼時候使用Dispose
aaaah,很好,那很好。但在這種情況下,我的猜測是你可以刪除''' - >期望($ this-> any())'''。他們只是看起來很奇怪 –
你說得對。但它可能出於文檔目的:我們明確地說「可以根據需要多次調用」。顯式比隱式更好,對嗎? :)但當然它的味道的問題。 –
是的,我也喜歡你的觀點。非常感謝:) –