モック コールバック オブジェクトがあります
Callback callback = mock(Callback.class);
このオブジェクトには と の 2 つのメソッドがdone()
ありfailed(String msg)
ます。
私は
verify(callback).done();
それが呼び出されたことを確認しますdone()
が、物事がうまくいかず、failed(String msg)
代わりに呼び出された場合、どうすれば印刷できますmsg
か?
モック コールバック オブジェクトがあります
Callback callback = mock(Callback.class);
このオブジェクトには と の 2 つのメソッドがdone()
ありfailed(String msg)
ます。
私は
verify(callback).done();
それが呼び出されたことを確認しますdone()
が、物事がうまくいかず、failed(String msg)
代わりに呼び出された場合、どうすれば印刷できますmsg
か?
ArgumentCaptorを使用して、呼び出されmsg
たを検証するときにキャプチャfailed()
できます。たとえば、次のように定義できるテストクラスで次のように定義できます。
@Mock private Callback mockCallback;
@Captor private ArgumentCaptor<String> stringCaptor;
そしてテスト自体で:
verify(mockCallback).falied(stringCaptor.capture());
final List<String> capturedMessages = stringCaptor.getAllValues();
final String actualMsg = capturedMessages.get(0);
final String expectedMsg = "foo";
assertEquals(expectedMsg, actualMsg);
注:@Captor
アノテーションはmockitov1.8.3で導入されました。これより前のバージョンを使用している場合は、上記のリンクAPIに前の構文の例があります。