我有一個模擬的回調對象抓的Mockito回調消息
Callback callback = mock(Callback.class);
這個對象有兩個方法,done()
和failed(String msg)
。
我做了
verify(callback).done();
看到done()
叫,但是當事情不轉起來這麼好,failed(String msg)
被稱爲相反,我怎麼能打印msg
?
我有一個模擬的回調對象抓的Mockito回調消息
Callback callback = mock(Callback.class);
這個對象有兩個方法,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
註釋是在mockito v1.8.3中引入的。如果您在此之前使用版本,則在上面的鏈接API中有一個以前語法的示例。
你可以發佈你的CallBack和測試代碼嗎? – Adelin