Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 两个对象上的匹配器断言_Java_Spring_Junit_Integration Testing_Hamcrest - Fatal编程技术网

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));