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())'''。他们只是看起来很奇怪 –
你说得对。但它可能出于文档目的:我们明确地说“可以根据需要多次调用”。显式比隐式更好,对吗? :)但当然它的味道的问题。 –
是的,我也喜欢你的观点。非常感谢:) –