1

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

1 回答 1

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 apiadd方法

于 2017-09-21T00:50:48.417 回答