我有一个模拟回调对象
Callback callback = mock(Callback.class);
这个对象有两种方法,done()
和failed(String msg)
。
我做
verify(callback).done();
看到done()
被调用了,但当事情进展不太好,而failed(String msg)
被调用时,我如何打印msg
?
在验证是否调用了failed()
时,您可以使用ArgumentCaptor捕获msg
,例如在您可以定义的测试类中:
@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中有一个先前语法的示例。