1

我有一个模拟回调对象

Callback callback = mock(Callback.class);

这个对象有两个方法,done()failed(String msg)

我做一个

verify(callback).done();

看到它done()被调用了,但是当事情没有那么好并且failed(String msg)被调用时,我该如何打印msg

4

1 回答 1

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 中有一个先前语法的示例。

于 2012-08-23T09:25:45.350 回答