AssertJ JSON 属性检查

par*_*ack 6 java unit-testing assertj

我有 JSONObject 实例,其中包含一些属性,

{
"name":"testName",
"age":"23"
}
Run Code Online (Sandbox Code Playgroud)

我使用以下断言,但它失败了。这是在assertj.json中测试JSON的正确方法吗?

assertThat(jsonObject).hasFieldOrProperty("name");
Run Code Online (Sandbox Code Playgroud)

Joe*_*ola 9

如果你想对 JSON 对象进行任何严肃的断言,我会推荐 JsonUnit https://github.com/lukas-krecan/JsonUnit


Sre*_*mar 2

我认为这与以下事实有关:它JSONObject就像一个具有键值对的映射,而 AssertJ 期望 Java bean 样式对象检查属性是否存在。我从https://joel-costigliola.github.io/assertj/core/api/org/assertj/core/api/AbstractObjectAssert.html#hasFieldOrProperty(java.lang.String)的文档中理解了这一点。希望我正在寻找正确的地方。

我的意思是说映射或JSONObject没有在其中声明供 AssertJ 查找的字段。

我想你可以用JSONObject.has( String key )它来代替。