web-dev-qa-db-ja.com

Mockito-検証メソッドは何をしますか?

テストコードのような次の疑似コードがあるとしましょう:

 //Let's import Mockito statically so that the code looks clearer
 import static org.mockito.Mockito.*;

 //mock creation
 List mockedList = mock(List.class);

 //using mock object
 mockedList.add("one");
 mockedList.clear();

 //what do these two verify methods do ?
 verify(mockedList).add("one");
 verify(mockedList).clear();

合格したテストを表示し続けますが、検証の意味がわかりません。正確に何を確認していますか?追加とクリアの呼び出しをあざけると理解しましたが、2つの検証呼び出しは何をしますか?

26
j2emanue

Mockito.verify(MockedObject).someMethodOnTheObject(someParametersToTheMethod);は、モックされたオブジェクトに対して呼び出したメソッドが実際に呼び出されていることを確認します。それらが呼び出されなかったり、間違ったパラメーターで呼び出されたり、間違った回数呼び出されたりすると、テストに失敗します。

21
kinbiko

これは、メソッドが呼び出され、それらの引数が指定されていることを示しています。

コメントアウト:

//mockedList.add("one");

または、引数を変更すると、テストは失敗します。

7
weston