1

モック コールバック オブジェクトがあります

Callback callback = mock(Callback.class);

このオブジェクトには と の 2 つのメソッドがdone()ありfailed(String msg)ます。

私は

verify(callback).done();

それが呼び出されたことを確認しますdone()が、物事がうまくいかず、failed(String msg)代わりに呼び出された場合、どうすれば印刷できますmsgか?

4

1 に答える 1

3

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に前の構文の例があります。

于 2012-08-23T09:25:45.350 に答える