配置mockito以在验证错误消息中打印实际参数值



在描述失败的验证时,默认情况下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")实际返回您的自定义答案。

相关内容

  • 没有找到相关文章

最新更新