首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哈希映射与AssertEquals不匹配

哈希映射与AssertEquals不匹配
EN

Stack Overflow用户
提问于 2019-08-21 17:12:05
回答 1查看 1.2K关注 0票数 0

我编写了测试REST POST调用的JUnit代码。

代码语言:javascript
复制
@Test
public  void testPOST_MAPOutput() throws IOException {
    String url="https://reqres.in/api/register";
    requestFields.put("email","eve.holt@reqres.in");
    requestFields.put("password","pistol");
    Map<String,Object> output=new HashMap<String, Object>();
    output.put("id","4");
    output.put("token","QpwL5tke4Pnpja7X4");
    System.out.println(output);
    assertEquals(output,restWebServices.doPostRequest(url,requestFields,httpHeaders, HashMap.class));

}

预期的输出和实际的输出似乎完全相等,但是JUnit测试失败了。

预期:java.util.HashMap<{id=4,token=QpwL5tke4Pnpja7X4}> 实际:java.util.HashMap<{id=4,token=QpwL5tke4Pnpja7X4}>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-22 10:49:24

在查看您的代码时,我非常肯定问题在于Map<String, Object>表示法,在这里您使用Object作为值。因此,可能有一个String、一个数字(IntegerLong)或--实际上是任何其他的,只要它的toString()方法返回"4",您就会看到相同的输出。

例如,String "4“和Integer 4都会打印出相同的数字- 4,,但它们绝不是平等的

考虑映射到更具体的Object类型,例如只使用String,并将结果从服务器转换为String,然后将其添加到Map进行比较。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57596350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档