【问题标题】:Schema Validation for JSON using Karate使用空手道对 JSON 进行模式验证
【发布时间】:2021-08-10 03:35:52
【问题描述】:

早安,

我刚刚开始使用 JSON,所以我知道这是一个非常基本的问题,谁能指出我在尝试验证下面的出现和问题 ID 方面做错了什么?

  Scenario: Get Entity Result with BASIC privledges, return userCanDismiss 'False'
    * def appParams = '{"dhd":{"dhdPermissions":"BASIC"},"podId":"eedev-inta"}}}'
    * def bfToken = TestUtils.getBFTokenWithAppParams(null, 769870979, 0, 'BF_ADMIN', appParams)
    * print 'bfToken -> ', bfToken
    * configure headers = { BFToken: #(bfToken), pod:{"podId":"eedev-inta"} }
    * def schema =
    """
  {
  "data": {
    "ids": [ "#string"
    ]
  },
  "_links":{},
  "_embedded": {
        "validationEventResults": [{
            "data": {
                "validationProblemStats": [{
                        "occurrences": "#ignore",
                        "problemId": "#string"
                }
                ]
            }
        }
        ]
  }
  }
  """

    Given path '/entities/' + externalEntityId + '/types/' + entityType + '/validation-event-results'
    When method get
    Then status 200
    And match response contains schema

id 字段似乎已成功验证,但我的文件在尝试验证出现次数和问题 ID 时失败。

【问题讨论】:

  • 你介意用一个例子来编辑这个问题吗?如果我不能快速将您上面的示例剪切并粘贴到测试中并查看问题,我将无法帮助您。
  • 嘿,彼得,它在调用中有一些令牌验证,所以我不确定它是否会为你运行,只是好奇我如何正确定义出现和问题 ID(忽略并寻找一个字符串)。谢谢!
  • 哦。这比我希望的要糟糕得多,我会做出一个“猜测”的答案,请注意您可以自己定义 response 以进行测试的技术。我多么希望更多的人可以提出更简单的问题:stackoverflow.com/help/minimal-reproducible-example

标签: karate


【解决方案1】:

请注意,我已经简化并更改了名称。请将此作为参考,阅读文档,然后找到解决方案:https://github.com/intuit/karate#schema-validation

* def stat = { occurrences: '#ignore', problemId: '#string' }
* def eventResult = { data: { validationProblemStats: '#[] stat' } }
* def schema = { embedded: { validationEventResults: '#[] eventResult' } }


* def response = 
"""
{ "embedded": { 
    "validationEventResults": [
      { "data": {
          "validationProblemStats": []
        } 
      }
    ]
  } 
}
"""
* match response == schema

【讨论】:

    猜你喜欢
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    相关资源
    最近更新 更多