gpt4 book ai didi

java - 对于以不同方式创建的等效 Jackson 对象,assertEquals 失败

转载 作者:行者123 更新时间:2023-12-02 09:04:12 26 4
gpt4 key购买 nike

所以我想知道为什么两个对象在我的单元测试(Junit 5)中以不同的方式创建时失败了。

第一种方式:

static ObjectMapper mapper = new ObjectMapper();
JsonNode output = mapper.convertValue(jsonTransform, JsonNode.class);

第二种方式:

JsonNode expectedOutput = mapper.readTree(jsonString);

然后断言:

Assertions.assertEquals(expectedOutput, output);

失败:

is org.opentest4j.AssertionFailedError: expected: com.fasterxml.jackson.databind.node.ObjectNode@d6e7bab<jsonString> but was: com.fasterxml.jackson.databind.node.ObjectNode@5fa07e12<jsonString>

此外,如果我将断言编辑为:

Assertions.assertEquals(expectedOutput, mapper.readTree(output.toString()));

一切都会过去的。那么什么概念导致第一个断言失败呢?

最佳答案

assertEquals 将调用此方法来查找两个对象是否相等:

 private static boolean isEquals(Object expected, Object actual) {
return expected.equals(actual);
}

我会查看 JsonNode 中的 equals() 方法来查看正在检查的内容。

关于java - 对于以不同方式创建的等效 Jackson 对象,assertEquals 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59956422/

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