我必须将 2 个列表传递给读取函数,但我不能。我尝试了很多方法,但没有找到解决方案。 这是我所做的
#步骤1
* url callPathProvider = anything
Given url callPath
When method get
Then status 200
#检索具体值
* def array1 = ...
#对于这一部分我参考如何将一个功能文件的json列表响应作为参数传递给另一个功能文件
* def data1 = karate.map(array1, function(x){ return { channelDefId: x } })
* print data1
打印结果:
[
{"channelDefId":"201"},
{"channelDefId":"301"},
{"channelDefId":"401"},
{"channelDefId":"501"}
...
]
* def array2 = array1.map(x => x.replace('01', '') * 1)
* def data2 = karate.map(array2, function(x){ return { listOfId: x } })
* print data2
打印结果:
[
{"listOfId":2},
{"listOfId":3},
{"listOfId":4},
{"listOfId":5}
...
]
#步骤2
* def result = call read('called.feature')(data2, data1)
=> this is not working, I got
功能调用循环在索引:0处失败,js失败: 01:[listOfId、'channel_definitions'、channelDefId、'authorize_url'] org.graalvm.polyglot.PolyglotException:ReferenceError:“channelDefId”未定义。:程序(未命名:1)
并且
called.feature
是:
Feature:
Scenario:
Given url 'part1'
And path listOfId, 'part2', channelDefId, 'part3'
When method POST
Then status 201
我尝试使用一个列表,例如: * def 结果 = call read('used.feature') data1 或者 * def 结果 = call read('used.feature') data2 它按预期工作了
我删除了主文件的这一部分
并将其添加到名为.feature的文件中:
这不是我想要的,但它有效。
如果有人知道如何做到这一点: def 结果 = call read('called.feature') list1 list2
艾莉西亚