从回复中,我提取了这样一个子集。
{
"base": {
"first": {
"code": "1",
"description": "Its First"
},
"second": {
"code": "2",
"description": "Its Second"
},
"default": {
"last": {
"code": "last",
"description": "No"
}
}
}
}
如果我需要使用进行单一验证并匹配X包含来检查
我没有使用json路径进行每次验证,而是尝试提取特定部分并对其进行验证。如果没有嵌套的json路径,我可以使用并匹配X包含非常容易,但是当有嵌套的jsons时,我无法做到。
答案 0 :(得分:1)
这适合你吗?
* def first = get[0] response..first
* match first.code == '1'
* def last = get[0] response..default.last
* match last.code == 'last'
编辑:好看,你想要尽可能地压缩成一行,更重要的是能够在嵌套节点中做contains
。就个人而言,我觉得这有时候不值得这么麻烦,但现在就去了。
另请参阅这些捷径:https://github.com/intuit/karate#contains-short-cuts
* def first = { code: "1" }
* match response.base.first contains first
* match response.base contains { first: '#(^first)' }
* def last = { code: 'last' }
* match response.base contains { first: '#(^first)', default: { last: '#(^last)' } }