我有一个模拟回调对象
Callback callback = mock(Callback.class);
此对象有两种方法done()
和failed(String msg)
。
我做了
verify(callback).done();
看到done()
被调用,但是当事情发生得不好而且调用了failed(String msg)
时,我该如何打印msg
?
答案 0 :(得分:3)
您可以在验证msg
被调用时使用ArgumentCaptor来捕获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中有一个先前语法的示例。