Karate 在空手道中匹配嵌套json数组时出错

Karate 在空手道中匹配嵌套json数组时出错,karate,Karate,有人能帮我解决下面的错误吗?我不确定我错过了什么。我想我错过了一些很简单的东西 断言失败:路径:$[0]。驱动器[*],实际:[{“分区数据”:[{“标签”:“恢复”},{“标签”:“},{“标签”:“},{“新卷”},{“标签”:“}]}],预期:{partitionData=[{“标签”:“#当前”}],原因:实际值不包含预期值 下面是我的模式代码: * set schema | path | 0 | | drives | [{"partitio

有人能帮我解决下面的错误吗?我不确定我错过了什么。我想我错过了一些很简单的东西

断言失败:路径:$[0]。驱动器[*],实际:[{“分区数据”:[{“标签”:“恢复”},{“标签”:“},{“标签”:“},{“新卷”},{“标签”:“}]}],预期:{partitionData=[{“标签”:“#当前”}],原因:实际值不包含预期值

下面是我的模式代码:

 * set schema
 | path      | 0           |  
 | drives    | [{"partitionData": [{"label":"#present"}] }] |
以下是输出:

            [
            {
            "drives": [
              {
                "partitionData": [
                  {
                    "label": "Recovery"
                  },
                  {
                    "label": ""
                  },
                  {
                    "label": "New Volume"
                  },
                  {
                    "label": ""
                  }
                ]
              }
            ]
            }
            ]

匹配每个输出都包含模式[0]

,因为您的问题令人困惑,下面是一个简单的示例。如果不需要,不要使用
set

* def schema = { "partitionData": [ { "label" : "#present" } ] }
* def response = { drives: [ { "partitionData": [ { "label" : "foo" } ] } ] }
* match each response.drives == schema

由于你的问题令人困惑,这里有一个简单的例子。如果不需要,不要使用
set

* def schema = { "partitionData": [ { "label" : "#present" } ] }
* def response = { drives: [ { "partitionData": [ { "label" : "foo" } ] } ] }
* match each response.drives == schema

首先阅读此文:在其他帖子@peterthomas上完成并采取行动阅读此文:在其他帖子@peterthomas上完成并采取行动在这个特定场景中,我被迫使用set,因为set用于创建多个嵌套JSON的模式,而我发布的只是其中的一部分。因此,当通过设置为响应的模式(多嵌套JSON)进行验证时,它失败了。但是,当我将模式存储在def中时,它确实可以正常工作。但仅仅是由于大型模式,我被迫使用set。由于项目中的更改,我丢失了这个测试用例,因此没有机会继续。然而,我将重新创建这个场景,并再次发布它,以便更清楚地解释问题。在这个特定场景中,我被迫使用set,因为set用于创建多个嵌套JSON的模式,而我发布的只是其中的一部分。因此,当通过设置为响应的模式(多嵌套JSON)进行验证时,它失败了。但是,当我将模式存储在def中时,它确实可以正常工作。但仅仅是由于大型模式,我被迫使用set。由于项目中的更改,我丢失了这个测试用例,因此没有机会继续。不过,我将重新创建场景,并再次发布,以更清晰地解释问题。