Matcher断言两个对象

时间:2015-10-08 09:36:16

标签: java spring junit integration-testing hamcrest

我有一个集成测试,用于检查响应的内容类型,如下所示

Header header = new BasicHeader("Content-Type", "application/octet-stream; charset=UTF-8");

assertThat(response.getEntity().getContentType(), Matchers.is(header));

测试失败,声明响应与使用此奇数消息的预构建标头相同

Expected: is <Content-Type: application/octet-stream; charset=UTF-8>
    but: was <Content-Type: application/octet-stream; charset=UTF-8>

我的预感是,既然我们说的是两个对象,我们说的是两个不同的实例。为此,我也尝试了

assertThat(response.getEntity().getContentType(), Matchers.equalTo(header));

但结果是一样的。

知道我做错了什么?

2 个答案:

答案 0 :(得分:1)

这意味着这两个对象中的toString给出了相同的结果,但这些对象在equals方法方面有所不同。也许他们甚至有不同的课程

答案 1 :(得分:1)

鉴于equals方法失败了,另一种方法是使用反射等式忽略导致问题的字段使用equals方法

org.mockito.Matchers.refEq(对象,[要忽略的字段列表])