Karate 检查数组是否仅包含一个包含提供的键子集的对象

Karate 检查数组是否仅包含一个包含提供的键子集的对象,karate,Karate,考虑到以下输入: * def list = [{a: 'aaa', b:'bbb'}, {a:'aa', c:'ccc'}] * def anotherList = [{a: 'aaa', b:'bbb'}, {a:'aa', b:'', c:'ccc'}] * def msg = {b: '#string'} 如何检查b键只存在一次 使用: * match list contains '#(^msg)' 将验证列表中是否至少出现一次b 如何检查键b在列表中或在另一个列表中是否只出现一次?因

考虑到以下输入:

* def list = [{a: 'aaa', b:'bbb'}, {a:'aa', c:'ccc'}]
* def anotherList = [{a: 'aaa', b:'bbb'}, {a:'aa', b:'', c:'ccc'}]
* def msg = {b: '#string'}
如何检查
b
键只存在一次

使用:

* match list contains '#(^msg)'
将验证列表中是否至少出现一次
b


如何检查键
b
列表中或在
另一个列表中是否只出现一次?因此,对于
列表
这样的检查应该通过,对于
另一个列表
这样的检查应该失败
你可以使用
匹配
进行过滤,并且
包含
捷径:

* def list = [{ a: 'aaa', b: 'bbb' }, { a: 'aa', c: 'ccc' }]
* def msg = { b: '#string' }
* def fun = function(x){ return karate.match(x, '#(^msg)').pass }
* def filt = karate.filter(list, fun)
* match filt == '#[1]'