【问题标题】:Karate loop returns Json array as objects {}空手道循环返回 Json 数组作为对象 {}
【发布时间】:2020-10-13 07:01:12
【问题描述】:

我正在使用空手道循环来生成动态 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"
        }
      ]
  }
]

但它会返回这个

[
  {
    "name": "userName0",
    "email": "Tester@test.com",
    "id": "ID1",
   "testSheet": {
       "0": {
          "sheetId": "123"
        }
      }
  }
]

预期路径:jsonBody[0].testSheet[0].sheetId

实际路径:jsonBody[0].testSheet.0.sheetId

【问题讨论】:

    标签: testing karate web-api-testing


    【解决方案1】:

    很遗憾,这是一个错误,将在下一个版本中修复: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
    

    【讨论】:

      猜你喜欢
      • 2021-10-17
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-08
      相关资源
      最近更新 更多