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

Java 对于以不同方式创建的等效Jackson对象,assertEquals失败,java,junit,jackson-databind,Java,Junit,Jackson Databind,所以我想知道为什么在我的单元测试(JUnit5)中,当两个对象的创建方式不同时,它们会失败 第一种方式: static ObjectMapper mapper = new ObjectMapper(); JsonNode output = mapper.convertValue(jsonTransform, JsonNode.class); 第二种方式: JsonNode expectedOutput = mapper.readTree(jsonString); 然后断言: Assertio

所以我想知道为什么在我的单元测试(JUnit5)中,当两个对象的创建方式不同时,它们会失败

第一种方式:

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>

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

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

private静态布尔相等(预期对象,实际对象){
预期回报。等于(实际);
}

我想看看
JsonNode
中的
equals()
方法,看看检查的是什么。

传递到convertValue中的“jsonTransform”变量是什么类型的?你能提供一个吗?@djharten它属于Object类型。
Assertions.assertEquals(expectedOutput, mapper.readTree(output.toString()));