我们有API,它给出了标签和值的响应数组下面是结构
"Name":"XYZ"
"Resultid": [
{
"subject": "English",
"Marks": "79"
},
{
"subject": "English",
"Marks": "79"
}
我们需要检查Subject和Marks的值是否总是不为空。下面是代码
List<Map<String, String>> allResultid = response.jsonPath().getList("Resultid");
for (Map<String, String> map : allResultid) {
assertEquals(map.get("subject"), not(blankOrNullString()));
assertEquals(map.get("Marks"), not(blankOrNullString()));
}
得到预期错误和实际错误不匹配。请帮忙检查值是否始终存在
Try withisNull
if(!allResultid.isNull("subject")) {
//Throw Error
}
或者你可以试试
if( allResultid.get("subject").equals(null) ){
//Throw Error
}
要在java中进行空检查,可以使用!= null. 因此,检查null,然后执行下一个任务。您也可以检查Resultid为空类似的方式。
List<Map<String, String>> allResultid = response.jsonPath().getList("Resultid");
for (Map<String, String> map : allResultid) {
if( map.get("subject") != null){
// do something
}
...
if( map.get("Marks") != null){
// do something
}
}
我们使用assert
添加了一行来检查null。assertNotNull(map.get("subject"));