Убедитесь, что массив содержит только один объект, который содержит предоставленный поднабор ключей - PullRequest
0 голосов
/ 12 февраля 2019

С учетом следующего ввода:

* 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 в list или в anotherList?Таким образом, такая проверка должна пройти для list и с ошибкой для anotherList.

1 Ответ

0 голосов
/ 12 февраля 2019

Вы можете фильтровать с помощью match и contains ярлыков:

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