2

メソッドが異なる引数で一定の順序で呼び出されることを確認したいと思います。私はこれを試しました:

org.mockito.Mockito.verify(mock).myMethod(arg1);
org.mockito.Mockito.verify(mock).myMethod(arg2);
//was myMethod called with arg1 before it was called with arg2?

しかし、それは順序を考慮していません。これを行う簡単な方法はありますか?

4

2 に答える 2

7

Mockitoは注文の呼び出しを確認するためにInOrderを提供します

このドキュメントを見てください :順番に検証

例 :

MyClass mock = mock(MyClass.class);
InOrder order = inOrder(mock);

order.verify(mock).myMethod("first");
order.verify(mock).myMethod("second");

最後の 2 行は、モック オブジェクトがその順序と引数で呼び出されたことを確認します。

于 2012-09-18T14:30:14.790 に答える
2

ArgumentCaptorを使用できます。MockitoJavadocのスニペットは次のとおりです。

ArgumentCaptor<Person> peopleCaptor = ArgumentCaptor.forClass(Person.class);
   verify(mock, times(2)).doSomething(peopleCaptor.capture());

   List<Person> capturedPeople = peopleCaptor.getAllValues();
   assertEquals("John", capturedPeople.get(0).getName());
   assertEquals("Jane", capturedPeople.get(1).getName());
于 2012-09-18T14:23:23.893 に答える