空手道:替换多个键值

Karate: Replacing multiple key values

我有以下回复,我正在尝试更换图标-url 的一部分,即将 test.com 更换为 prod.com。

[
  {
    "_": {
      "name": "FA",
      "icon-url": "https://test.com/static/images/air/partner.png"
    },
    "@": {
      "code": "00"
    }
  },
  {
    "_": {
      "name": "DA",
      "icon-url": "https://test.com/static/images/air/partner.png"
    },
    "@": {
      "code": "0D"
    }
  },
  {
    "_": {
      "name": "JC",
      "icon-url": "https://test.com/static/images/air/partner.png"
    },
    "@": {
      "code": "0J"
    }
  },
  {
    "_": {
      "name": "AG",
      "icon-url": "https://test.com/static/images/air/partner.png"
    },
    "@": {
      "code": "1A"
    }
  },
  {
    "_": {
      "name": "AI",
      "icon-url": "https://test.com/static/images/airline/partner.png"
    },
    "@": {
      "code": "1B"
    }
  }]

我尝试使用以下功能,但这不起作用:

* def iconurl = 'prod.com'

* def replaceEnv = function(x){ if (x['icon-url']) x['icon-url'] = x['icon-url'].replace('test.com', iconurl); return x }

* def convertedExpectation = karate.map(result, replaceEnv) // result refers to the response above

请看一下代码并指导我代码中的错误。

给你,注意 x._['icon-url']x['_']['icon-url']

相同
* def fun = function(x){ var temp = x._['icon-url']; x._['icon-url'] = temp.replace('test.com', 'prod.com'); return x }