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

时间:2019-02-12 09:51:16

标签: 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个出现。

如何检查blist中是否恰好有一次键anotherList的出现?因此,list的这种检查应该通过anotherList失败

1 个答案:

答案 0 :(得分:2)

您可以使用matchcontains快捷方式进行过滤:

* 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]'