Java Hamcrest检查值是否为null或空数组
我有一个返回JSON的代码,其中一个字段可能是null或空数组 我要检查以下代码:Java Hamcrest检查值是否为null或空数组,java,rest-assured,hamcrest,Java,Rest Assured,Hamcrest,我有一个返回JSON的代码,其中一个字段可能是null或空数组 我要检查以下代码: 导入静态org.hamcrest.core.AnyOf.AnyOf; 导入静态org.hamcrest.CoreMatchers.nullValue; 导入静态org.hamcrest.Matchers.blankOrNullString; //io.restassured.response getResponse.then() .断言() .body(“entity.fields”,任意一个(nullValue
导入静态org.hamcrest.core.AnyOf.AnyOf;
导入静态org.hamcrest.CoreMatchers.nullValue;
导入静态org.hamcrest.Matchers.blankOrNullString;
//io.restassured.response
getResponse.then()
.断言()
.body(“entity.fields”,任意一个(nullValue(),emptyArray())
但产出尚不清楚
java.lang.AssertionError: 1 expectation failed.
JSON path entity.fields doesn't match.
Expected: (null or an empty array)
Actual: []
此设置中有什么不正确?JSON数组是值列表,因此使用empty()代替emptyArray() 什么时候 应为:(null或空集合) 实际:威尔弗雷德 已返回断言错误 什么时候 正确验证
我在搜索详细信息时发现了这个问题,JSON数组是值的列表,所以使用empty()代替emptyArray() 什么时候 应为:(null或空集合) 实际:威尔弗雷德 已返回断言错误 什么时候 正确验证
我以前有过这个问题,是在搜索详细信息时发现的当你说json有空数组时,你是说它是这种格式吗<代码>{“实体”:{“字段”:[]}如果为空,则此格式
{“entity”:{“fields”:null}
getResponse的实际值是多少?@WilfredClement,你是对的,当你说json有空数组时,它可能是[]
或null
,你是说它是这种格式吗<代码>{“实体”:{“字段”:[]}如果为空,则此格式{“实体”:{“字段”:null}
getResponse的实际值是多少?@WilfredClement,您是对的,它可能是[]
或null
assertThat().body("entity.fields", anyOf(nullValue(),empty()));
{"entity":{"fields":"Wilfred"}}
{"entity":{"fields":null}} or {"entity":{"fields":[]}}