【发布时间】:2016-01-05 20:22:12
【问题描述】:
我有一个集成测试来检查响应的内容类型,如下所示
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));
但结果是一样的。
知道我做错了什么吗?
【问题讨论】:
-
response.getEntity().getContentType()的返回类型是否实现
equals? -
@StefanBirkner 该方法返回 apache.httpcomponets 包的 BasicHeader。根据我的调查,这等于实施。有什么想法吗?
-
哪个版本覆盖了equals? This one doesn't. 看起来你可能需要一个自定义匹配器
标签: java spring junit integration-testing hamcrest