gpt4 book ai didi

java - HashMap 与 AssertEquals 不匹配

转载 作者:行者123 更新时间:2023-12-02 01:24:20 24 4
gpt4 key购买 nike

我已经编写了 JUnit 代码来测试 REST POST 调用。

@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 测试仍然失败。

Expected :java.util.HashMap<{id=4, token=QpwL5tke4Pnpja7X4}>
Actual :java.util.HashMap<{id=4, token=QpwL5tke4Pnpja7X4}>

最佳答案

看看你的代码,我很确定问题出在Map<String, Object>表示法,您可以在其中使用 Object作为一个值。因此,可能有 String 、数字( IntegerLong )或字面上的任何其他,只要其 toString()方法返回 "4"你会看到相同的打印品。

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

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

关于java - HashMap 与 AssertEquals 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57596350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com