Java 两个对象上的匹配器断言
我有一个集成测试,它检查响应的内容类型,如下所示Java 两个对象上的匹配器断言,java,spring,junit,integration-testing,hamcrest,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: appl
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>
但结果是一样的
知道我做错了什么吗?这意味着这两个对象的
toString
给出了相同的结果,但这些对象在等于方法方面是不同的。可能它们甚至有不同的类如果equals方法在您身上失败,另一种方法是使用反射相等,忽略导致equals方法出现问题的字段
org.mockito.Matchers.refEq(object,[要忽略的字段列表])response.getEntity().getContentType()的返回类型是否实现等于?@StefanBirkner该方法返回apache.httpcomponets包的BasicHeader。根据我的调查,这已经实现了。有什么想法吗?哪个版本的等式被覆盖了?看起来您可能需要一个自定义匹配器
assertThat(response.getEntity().getContentType(), Matchers.equalTo(header));