Mockito捕获回调消息



我有一个模拟回调对象

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

相关内容

  • 没有找到相关文章

最新更新