mockito
メソッド呼び出しを確認する
サーチ…
簡単なメソッド呼び出しの検証
Mockito.verify()
を使用して、メソッドがモックで呼び出されたかどうかを検証できます。
Original mock = Mockito.mock(Original.class);
String param1 = "Expected param value";
int param2 = 100; // Expected param value
//Do something with mock
//Verify if mock was used properly
Mockito.verify(mock).method();
Mockito.verify(mock).methodWithParameters(param1, param2);
通話の順序を確認する
場合によっては、1つのメソッドが呼び出されたかどうかを知ることでは不十分な場合もあります。メソッドの呼び出し順序も重要です。そのような場合は、メソッドの順序を検証するためにInOrder
クラスのMockito
を使用することができます。
SomeClass mock1 = Mockito.mock(SomeClass.class);
otherClass mock2 = Mockito.mock(OtherClass.class);
// Do something with mocks
InOrder order = Mockito.inOrder(mock1, mock2)
order.verify(mock2).firstMethod();
order.verify(mock1).otherMethod(withParam);
order.verify(mock2).secondMethod(withParam1, withParam2);
InOrder.verify()
と同じようにMockito.verify()
ます。
ArgumentCaptorを使用して呼び出し引数を検証する
ArgumentCaptor
は、メソッドに渡された実際の呼び出し引数を受け取ります。
ArgumentCaptor<Foo> captor = ArgumentCaptor.forClass(Foo.class);
verify(mockObj).doSomethind(captor.capture());
Foo invocationArg = captor.getValue();
//do any assertions on invocationArg
すべての呼び出し引数を受け取る模擬メソッドの複数の呼び出しの場合
List<Foo> invocationArgs = captor.getAllValues();
同じアプローチが、変数の取り込みにも使用されます。
@Captor
アノテーションを使用してArgumentCaptor
を作成することも可能です:
@Captor
private ArgumentCaptor<Foo> captor;
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow