2011-03-10 109 views
16

他们都似乎做同样的事情 - 为什么你会使用一个优先于另一个?使用Mockito时,mock()和stub()之间有什么区别?

org.mockito.Mockito.stub() 
org.mockito.Mockito.mock() 
+11

存根方法已被弃用,检查文档。根据安迪的说法,新的方法调用存根方式。 – Augusto 2011-03-10 14:47:31

+0

好的 - 谢谢,这样更有意义! – Tom 2011-03-10 17:20:40

+0

@Augusto任何想法为什么'存根'被弃用?我只是好奇关键的区别是什么。我试图在项目的邮件列表上找到一些东西,但这并不容易。 – toniedzwiedz 2015-01-08 17:18:07

回答

15

您可以使用模拟对象来验证您是否按照预期的方式调用了它。在Mockito中,模拟对象是自动存根,并且明确地进行验证。

从的Mockito的"Why do we need another mocking framework?"

Separation of stubbing and verification. Should let me code in line with intuition: 
stub before execution, selectively verify interactions afterwards. I don’t 
want any verification-related code before execution. 

您可以存根调用的行为他们是所谓的之前。例如(从家的Mockito页):

when(mockedList.get(0)).thenReturn("first"); 

您可以验证与嘲笑对象的交互他们是所谓的后。例如:

verify(mockedList).add("one"); 
+0

对不起 - 我的意思是方法,我已更新标题和问题。 – Tom 2011-03-10 14:43:51

+1

我接受这个答案,因为它是有用的信息,但我的问题的真正答案是由奥古斯都给出 - 存根()已弃用。 – Tom 2011-03-10 17:20:04

相关问题