如何在空手道中向数组中添加元素?

时间:2017-09-20 19:28:48

标签: karate

如何在空手道中向数组中添加元素? 我有一个来自响应的字符串数组(不是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

1 个答案:

答案 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方法