我有一个集成测试,用于检查响应的内容类型,如下所示
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));
但结果是一样的。
知道我做错了什么?
答案 0 :(得分:1)
这意味着这两个对象中的toString
给出了相同的结果,但这些对象在equals
方法方面有所不同。也许他们甚至有不同的课程
答案 1 :(得分:1)
鉴于equals方法失败了,另一种方法是使用反射等式忽略导致问题的字段使用equals方法
org.mockito.Matchers.refEq(对象,[要忽略的字段列表])