【问题标题】:Karate issue with matching input and output匹配输入和输出的空手道问题
【发布时间】:2020-04-20 09:42:32
【问题描述】:

我可能遗漏了一些东西,但我注意到了一个琐碎的问题。我有一个来自 JSON 文件的被测端点的输入有效负载。这是输入有效载荷:

{
    "KJ01": {
        "vin": "MMTestingVIN00001",
        "sskwngtrghastsp": "20200419133000",
        "wngdetail": [
            {
                "wngsysmbol": "WASH",
                "wngclass": "S",
                "wngcondflg": "1"
            }
        ]
    }

这是我得到的回应的一部分

{
  "items": [
    {
      "vin": "MMTestingVIN00001",
      "dealerCode": "1",
      "nmscCode": "1",
      "timestamp": "2020-04-19T13:30:00.000Z",
      "warning": {
        "warningLightType": {
          "symbol": "WASH",
          "type": "S",
          "priority": "1"
        }
      }
    }
  ]
}

响应包含 items 数组中的许多对象,我正在查找数组索引号,我在其中获取具有 VIN = MMTestingVIN00001 的对象 因此,假设在 items 数组的索引 10 处找到了所需的响应项目对象。

  • def foundAt = 10

当我执行以下操作时:

* def Payload = read(datafile)
* json JsonPayload = Payload
# expecting WASH == WASH
* match response.items[foundAt].warning.warningLightType.symbol == JsonPayload.KJ01.wngdetail[0].wngsysmbol 

它给了我一个错误:

 Could not parse token starting at position 7. Expected ?, ', 0-9, *

但是当我在 LHS 上的匹配表达式中明确提到索引号 10 时,即

match response.items[10].warning.warningLightType.symbol == JsonPayload.KJ01.wngdetail[0].wngsysmbol 

或者我将 LHS 与 RHS 交换,意思不是匹配输出 == 输入,如果我匹配输入 == 输出,即

match JsonPayload.KJ01.wngdetail[0].wngsysmbol == response.items[foundAt].warning.warningLightType.symbol 

在上述两种情况下都有效。

所以作为一个结论,如果我们做一个匹配输出表达式 == 输入表达式,其中输出表达式有一个数组索引,该数组索引被一个变量引用,例如 'foundAt',即它有类似 - items[foundAt] 的东西,它不喜欢它并给出错误。

在这种情况下,作为一种解决方法,当我们给 match inputexpression == outputexpression 时,它就会起作用。

我在这里遗漏了什么琐碎的东西吗?我阅读了有关匹配表达式的 LHS 和 RHS 必须如何的文档,但无法使用该信息来更改我的测试。

有人可以帮帮我吗?我希望我现在清楚我的问题了。

【问题讨论】:

    标签: karate


    【解决方案1】:

    请查看有关如何设置 match 语句左侧的文档。 https://github.com/intuit/karate#match-and-variables

    【讨论】:

    • 这是正确答案。但有一个窍门!如果将其括在括号中,则可以强制对 LHS 进行评估:* match (response.items[foundAt].warning.warningLightType.symbol) == foo
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    相关资源
    最近更新 更多