我有一个模拟回调对象
Callback callback = mock(Callback.class);
这个对象有两个方法,done()
和failed(String msg)
。
我做一个
verify(callback).done();
看到它done()
被调用了,但是当事情没有那么好并且failed(String msg)
被调用时,我该如何打印msg
?
我有一个模拟回调对象
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 中有一个先前语法的示例。