2012-08-23 61 views
1

我有一個模擬的回調對象抓的Mockito回調消息

Callback callback = mock(Callback.class); 

這個對象有兩個方法,done()failed(String msg)

我做了

verify(callback).done(); 

看到done()叫,但是當事情不轉起來這麼好,failed(String msg)被稱爲相反,我怎麼能打印msg

+0

你可以發佈你的CallBack和測試代碼嗎? – Adelin

回答

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註釋是在mockito v1.8.3中引入的。如果您在此之前使用版本,則在上面的鏈接API中有一個以前語法的示例。

+0

鏈接不再。 – Rob

+0

感謝@Rob,鏈接已更新 – andyb