如何调试模拟/存根/匹配器?

2022-09-03 13:50:55

在使用mockito的正常测试开发过程中,我(当然还有许多其他人)遇到过很多情况,我们的when(service.doSomething(paramMatcher,paramMatcher2,...)。然后返回(...)让我发疯。列表,vargars,null值等之间可能存在如此多的组合,通常花费数小时来尝试获得正确的公式,即使这样,我也放弃了,只是使用any()与然后Answer(手动匹配)。

如何调试mockito的参数匹配机制?为了增加难度,我使用Mockito运行器运行我的测试,这意味着我使用注释来初始化并自动注入我的模拟服务。


答案 1

您可以在模拟对象上启用详细日志记录:

List mockWithLogger = mock(List.class, withSettings().verboseLogging())

这应该为您提供更多信息来了解交互。

https://javadoc.io/doc/org.mockito/mockito-core/2.6.4/org/mockito/MockSettings.html#verboseLogging()


答案 2

推荐