我使用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
答案 0 :(得分:1)
你需要在github https://github.com/skyscreamer/JSONassert
使用JSONassert,avialable答案 1 :(得分: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);