在描述验证失败时,默认情况下,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)
这是有用的信息,但我也希望看到在这些互动过程中传递的参数。有没有办法实现这个目标?
P上。 S.我知道用withSettings().verboseLogging()
嘲笑。但它太冗长并打印到stdout而不是将此信息添加到断言错误消息。
更新: Mockito 1.9.0不支持开箱即用的异常错误消息的自定义(我刚检查了它们的来源)。
答案 0 :(得分:0)
最安全的地方是打印参数并返回给定值的答案。
然后您可以编写如下内容:
given(some.callWith(arg1, arg2)).will(printArgsAndReturn("some value"));
其中printArgsAndReturn("some value")
实际上会返回您的自定义答案。