Karate 空手道测试:如何匹配只包含一个模式的每个嵌套数组响应
是否可以仅使用一个模式匹配嵌套数组响应的每个元素(使用包含) 我有一组带有请求参数和响应模式的yml文件,如下所示:Karate 空手道测试:如何匹配只包含一个模式的每个嵌套数组响应,karate,Karate,是否可以仅使用一个模式匹配嵌套数组响应的每个元素(使用包含) 我有一组带有请求参数和响应模式的yml文件,如下所示: response: appId: '#string' attributes: '#array' login: '#string' permissions: '#array' metadata: roles: '##array' userData: description: '#string' employeeId: '#string
response:
appId: '#string'
attributes: '#array'
login: '#string'
permissions: '#array'
metadata:
roles: '##array'
userData:
description: '#string'
employeeId: '#string'
employeeNumber: '##string'
id: '#string'
login: '#string'
mail: '#string'
name: '#string'
然后,在可重用功能中:
* def req = read(<testDataFile>)
* match response contains req.response
或任何其他表达
非常感谢您不能用一个“模式”来实现这一点,您必须将重复元素单独声明为一个空手道变量:
您不能使用单个“模式”执行此操作,必须将重复元素单独声明为空手道变量:
response:
appId: '##string'
attributes: '##array'
attributes[*]:
key: '#string'
* def foo = { a: '#number' }
* def bar = { baz: [{ a: 1 }, { a: 2 }, { a: 3 }] }
* match each bar.baz == foo
* match bar == { baz: '#[] foo' }