在描述失败的验证时,默认情况下Mockito只打印发生交互的调用站点。像这样:
Wanted but not invoked:
proxyListener.foundTemplateParam(
"fooBar2",
isNull(),
isNull()
);
-> at foo.ProxyHandlerTest.testThatImplicitParamsScannedCorrectly(ProxyHandlerTest.java:136)
However, there were other interactions with this mock:
-> at foo.ProxyHandler.<init>(ProxyHandler.java:99)
-> at foo.ProxyHandler.<init> (ProxyHandler.java:100)
-> at foo.ProxyHandler.scanForParamSetters(ProxyHandler.java:222)
-> at foo.ProxyHandler.<init>(ProxyHandler.java:102)
-> at foo.ProxyHandler.<init>(ProxyHandler.java:104)
这是有用的信息,但我也想看看在这些交互过程中传递了哪些论点。有办法做到这一点吗?
第页。S.我知道用withSettings().verboseLogging()
进行嘲讽。但它太过冗长,并被打印到stdout,而不是将此信息添加到断言错误消息中。
更新:Mockito 1.9.0不支持开箱即用的异常错误消息的自定义(我刚刚检查了它们的来源)。
最安全的方法是打印参数并返回给定值的答案。
然后你可以写这样的东西:
given(some.callWith(arg1, arg2)).will(printArgsAndReturn("some value"));
其中printArgsAndReturn("some value")
实际返回您的自定义答案。