如何在空手道中向数组中添加元素? 我有一个来自响应的字符串数组(不是json数组),并为它的下一个请求添加一个字符串元素。 我用JS函数试了很多但没有运气。
感谢任何帮助。
Scenario:123
* def roles = ["role1"]
* def newrole = "role2"
* def addrolefn =
"""
function(role,roles1) {
var fullrole = [];
for (var i=0; i<roles1.length;i++) {
fullrole = fullrole.push(role);
}
return fullrole;
}
"""
* def fullroles = call addrolefn (newrole,roles)
* print fullroles
答案 0 :(得分:0)
请参阅set
关键字。
* def roles = ["role1"]
* def newrole = "role2"
* set roles[1] = newrole
* print karate.pretty(roles)
结果:
06:26:35.324 [main] INFO com.intuit.karate - [print] [
"role1",
"role2"
]
编辑:实际上我刚刚提出了一项增强请求,要求将append
关键字添加到空手道。同时,这应该回答您的所有问题并作为解决方法。
* def roles = null
# javascript that assigns an empty array if null
* json roles = (roles || [])
* def newrole = "role2"
# javascript to append to an array. the def void is useless
* def void = (roles.add(newrole))
* print karate.pretty(roles)
编辑:输入到json,并使用java list api add
方法