1

我正在使用org.json将 XML 转换为 JSON,并且我想对JUnit我的解析过程进行单元测试(使用)。
但是,当我尝试使用json.equals它比较对象时失败。我了解jackson已正确实施该equals方法。有没有办法对对象的相等性进行单元测试org.json

...
JSONObject actual = XML.toJSONObject(xml);
JSONObject expected = new JSONObject().put("key","val");
assertEquals(expected, actual); // false
assertEquals(expected.toString(), actual.toString()) // true
4

2 回答 2

1

您需要使用 JSONassert,可在 github https://github.com/skyscreamer/JSONassert

于 2016-05-16T14:11:57.467 回答
0

您也可以尝试使用 ModelAssert - https://github.com/webcompere/model-assert - 这看起来像这样:

JSONObject actual = XML.toJSONObject(xml);
JSONObject expected = new JSONObject().put("key","val");
assertJson(actual)
   .isEqualTo(expected);

但是,转换为JSONObject. 在这种情况下,您可以放宽密钥顺序:

assertJson(actual)
   .where().keysInAnyOrder()
   .isEqualTo(expected);
于 2021-06-14T07:54:36.077 回答