どちらも同じことをしているようです。なぜ一方を他方よりも優先して使用するのでしょうか。
org.mockito.Mockito.stub()
org.mockito.Mockito.mock()
モック オブジェクトを使用して、期待どおりに呼び出したことを確認できます。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.
呼び出しの動作は、呼び出される前にスタブできます。例 (Mockito ホームページから):
when( mockedList.get(0)).thenReturn( "first" );
モックされたオブジェクトが呼び出された後、それらとの相互作用を確認できます。例えば:
verify( mockedList ).add("one");