我正在写一个ArgumentMatcher,比较的内容归结为:
return A.value().equals(B.value()) && A.name().equals(B.name());
不幸的是,当没有通过时,Mockito告诉我它失败了。我想添加一个自定义消息,如“值不匹配”或“名称不匹配”(当然我想提供更多信息,但直到我能弄清楚这个简单的情况,有什么意义任何进一步的。)
以前(在使用Mockito之前),我记得有两个方法的匹配器 - 一个用于检查匹配,另一个用于生成失败消息(true,写两种方法都很痛苦,但我现在想念第二种方法)
知道怎么做吗?任何帮助表示赞赏!
答案 0 :(得分:4)
我现在明白了。 Hamcrest提供了一个" describeTo"方法。这相当于我记得EasyMock的方法。您只需将错误条件添加到Description对象,并且中提琴,您有更好的失败消息。
答案 1 :(得分:2)
提供自定义消息的一般方法是Mockito.description()
方法:
verify(writer, never().description("exception was thrown"))
.println(any(Object.class));
答案 2 :(得分:0)
如果要实现org.mockito.ArgumentMatcher
接口,则测试将调用其toString()
方法来创建比较消息的“ Wanted”侧。通过仅在用于初始化toString()
的预期对象上返回ArgumentMatcher
方法的值来实现此方法,可能会给您有用的消息。