空手道循环 returns Json array as objects {}
Karate loop returns Json array as objects {}
我正在使用空手道循环来生成动态 Json。
我的测试数据之一包含对象中的数组。当我对此数据使用空手道循环时,数组作为对象返回。
* def fun = function(i){ return { "name": "userName"+ i, "email": "Tester@test.com", "id": "ID"+i, "testSheet": [{"sheetId" : "123"}]} }
* def jsonBody = karate.repeat(3, fun)
* print jsonBody
我预计如下:
[
{
"name": "userName0",
"email": "Tester@test.com",
"id": "ID1",
"testSheet": [
{
"sheetId": "123"
}
]
}
]
但是returns这个
[
{
"name": "userName0",
"email": "Tester@test.com",
"id": "ID1",
"testSheet": {
"0": {
"sheetId": "123"
}
}
}
]
预期路径:jsonBody[0].testSheet[0].sheetId
实际路径:jsonBody[0].testSheet.0.sheetId
很遗憾,这是一个错误,将在下一个版本中修复:https://github.com/intuit/karate/issues/1187
这是解决方法。暂时在JS块外定义数组部分,使用copy
:
* def testSheet = [{"sheetId" : "123"}]
* def fun = function(i){ return { "name": "userName"+ i, "email": "Tester@test.com", "id": "ID"+i, "testSheet": testSheet } }
* copy jsonBody = karate.repeat(3, fun)
* print jsonBody
我正在使用空手道循环来生成动态 Json。 我的测试数据之一包含对象中的数组。当我对此数据使用空手道循环时,数组作为对象返回。
* def fun = function(i){ return { "name": "userName"+ i, "email": "Tester@test.com", "id": "ID"+i, "testSheet": [{"sheetId" : "123"}]} }
* def jsonBody = karate.repeat(3, fun)
* print jsonBody
我预计如下:
[
{
"name": "userName0",
"email": "Tester@test.com",
"id": "ID1",
"testSheet": [
{
"sheetId": "123"
}
]
}
]
但是returns这个
[
{
"name": "userName0",
"email": "Tester@test.com",
"id": "ID1",
"testSheet": {
"0": {
"sheetId": "123"
}
}
}
]
预期路径:jsonBody[0].testSheet[0].sheetId
实际路径:jsonBody[0].testSheet.0.sheetId
很遗憾,这是一个错误,将在下一个版本中修复:https://github.com/intuit/karate/issues/1187
这是解决方法。暂时在JS块外定义数组部分,使用copy
:
* def testSheet = [{"sheetId" : "123"}]
* def fun = function(i){ return { "name": "userName"+ i, "email": "Tester@test.com", "id": "ID"+i, "testSheet": testSheet } }
* copy jsonBody = karate.repeat(3, fun)
* print jsonBody