我正在尝试验证具有嵌套的多个JSON对象的JSON。


  Scenario: temp1
* def response1 =
"""
{
"productGroups": [
    {
        "dateLabel": "28 Aug, Wed",
        "products": [
            {
                "id": 1439,
                "product": "product 1"
            },
            {
                "id": 1401,
                "product": "product 2"
            }
        ]
      }
    ]
  }
"""
* print response1.productGroups
Then match response1.productGroups[*] contains
"""
{
  'dateLabel': #string,
  'products': [
    {
      'id': #number,
      'product': #string
    }
  ]
}
"""


得到的回应


  原因:实际值不包含预期值


如果我将验证更改为

Then match response1.productGroups[0] contains


得到的回应


  原因:实际数组和预期数组的大小不同-2:1


我想做的是验证“ productGroups”对象的架构以及“ products”的内部对象

最佳答案

请花一些时间阅读文档,这是值得的:https://github.com/intuit/karate#schema-validation

* def product = { 'id': #number, 'product': #string }
Then match response1.productGroups[*] contains
"""
{
  'dateLabel': #string,
  'products': '#[] product'
}
"""

10-06 08:00