使用Mockito时mock()和stub()有什么区别?

Tom*_*Tom 19 java mockito

他们似乎都做了同样的事情 - 为什么你会使用一个优先于另一个?

org.mockito.Mockito.stub()
org.mockito.Mockito.mock()
Run Code Online (Sandbox Code Playgroud)

And*_*mas 16

您可以使用模拟对象来验证是否已按预期方式调用它.在Mockito中,模拟对象是自动存根,并且显式验证.

从Mockito的"为什么我们需要另一个模拟框架?" :

 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.
Run Code Online (Sandbox Code Playgroud)

您可以在调用之前存根调用行为.例如(来自Mockito主页):

 when( mockedList.get(0)).thenReturn( "first" );
Run Code Online (Sandbox Code Playgroud)

您可以在调用后验证与模拟对象的交互.例如:

 verify( mockedList ).add("one");
Run Code Online (Sandbox Code Playgroud)