首页 > 解决方案 > 如何验证数组响应包括空手道中另一个数组的值

问题描述

我有一个数组

[{"Id": "123"},{"Id": "1239"},{"Id": "1233"},{"Id": "1235"}]

我想验证另一个数组

[{"Id": "123"},{"Id": "1239"},{"Id": "1233"},{"Id": "1235"},{"Id": "1236"},{"Id": "1237"},{"Id": "1238"},{"Id": "1239"}]

写了这段代码:

* def a= [{"Id": "123"},{"Id": "1239"},{"Id": "1233"},{"Id": "1235"}]
* def b= [{"Id": "123"},{"Id": "1239"},{"Id": "1233"},{"Id": "1235"},{"Id": "1236"},{"Id": "1237"},{"Id": "1238"},{"Id": "1239"}]
* match b[*].Id contains a[*].Id

我收到以下错误

javascript evaluation failed: b[*].Id, <eval>:1:12 Expected an operand but found *
a[*].Id
  ^ in <eval> at line number 1 at column number 12*          

请问有什么解决办法吗?

标签: karate

解决方案


JsonPath 仅在match. 阅读文档:https ://github.com/intuit/karate#jsonpath-short-cuts

请添加一个步骤:

* def expected = $a[*].Id
* match b[*].Id contains expected

推荐阅读