Karate 在空手道中匹配嵌套json数组时出错
有人能帮我解决下面的错误吗?我不确定我错过了什么。我想我错过了一些很简单的东西 断言失败:路径:$[0]。驱动器[*],实际:[{“分区数据”:[{“标签”:“恢复”},{“标签”:“},{“标签”:“},{“新卷”},{“标签”:“}]}],预期:{partitionData=[{“标签”:“#当前”}],原因:实际值不包含预期值 下面是我的模式代码:Karate 在空手道中匹配嵌套json数组时出错,karate,Karate,有人能帮我解决下面的错误吗?我不确定我错过了什么。我想我错过了一些很简单的东西 断言失败:路径:$[0]。驱动器[*],实际:[{“分区数据”:[{“标签”:“恢复”},{“标签”:“},{“标签”:“},{“新卷”},{“标签”:“}]}],预期:{partitionData=[{“标签”:“#当前”}],原因:实际值不包含预期值 下面是我的模式代码: * set schema | path | 0 | | drives | [{"partitio
* 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。由于项目中的更改,我丢失了这个测试用例,因此没有机会继续。不过,我将重新创建场景,并再次发布,以更清晰地解释问题。