6

我正在写一个 ArgumentMatcher,比较的内容归结为:

return A.value().equals(B.value()) && A.name().equals(B.name());

不幸的是,当没有通过时,Mockito 只是告诉我它失败了。我想添加一条自定义消息,例如“值不匹配”或“名称不匹配”(当然我想提供更多信息,但在我弄清楚这个简单的案例之前,还有什么意义呢?任何进一步)。

以前(在使用 Mockito 之前),我记得匹配器有两种方法 - 一种用于检查匹配,另一种用于生成失败消息(确实,编写这两种方法很痛苦,但我现在想念第二种方法)。

知道怎么做吗?任何帮助表示赞赏!

4

3 回答 3

4

我现在明白了。Hamcrest 提供了一个“describeTo”方法。这相当于我从 EasyMock 中记得的方法。您只需将错误条件添加到 Description 对象,中提琴,您就会得到更好的失败消息。

于 2011-02-19T17:02:42.607 回答
3

提供自定义消息的一般方法是通过Mockito.description()方法:

verify(writer, never().description("exception was thrown"))
  .println(any(Object.class));
于 2017-05-21T10:34:21.100 回答
2

如果您正在实现该org.mockito.ArgumentMatcher接口,测试将调用其toString()方法来创建比较消息的“Wanted”端。toString()通过简单地返回用于初始化的预期对象上的方法的值来实现此方法ArgumentMatcher可能会给您带来有用的消息。

于 2018-11-06T18:16:21.970 回答