Karate 为不存在的json路径匹配每个dosent失败

Karate 为不存在的json路径匹配每个dosent失败,karate,Karate,我有json对象作为响应。如果我尝试一个无效的路径来提取值并用match-each断言它,它总是通过 * match each karate.jsonPath(response,"$[*].non.existing.path") == ["text1"] 我做错什么了吗 请不要:如果我给出了正确的路径,并且该值与“text1”不匹配,则会失败。绝对没有问题。只有无效的json路径才能看到问题。我面临的情况是,我的响应有一个空数组。当我将它与任何值匹配时,它被传递。例如: * match eac

我有json对象作为响应。如果我尝试一个无效的路径来提取值并用match-each断言它,它总是通过

* match each karate.jsonPath(response,"$[*].non.existing.path") == ["text1"]
我做错什么了吗


请不要:如果我给出了正确的路径,并且该值与“text1”不匹配,则会失败。绝对没有问题。只有无效的json路径才能看到问题。

我面临的情况是,我的响应有一个空数组。当我将它与任何值匹配时,它被传递。例如:

* match each array == '#(value)'

我面临的情况是,我的响应有一个空数组。当我将它与任何值匹配时,它被传递。例如:

* match each array == '#(value)'

是的,这是设计的<代码>匹配每个实际上是一个循环。如果项目数为零,则永远不会应用
匹配

如果要确保数组需要非空,请添加第二个检查

* def foo = [1, 2]
* match foo == '#[_ > 0]'
* match each foo == '#number'

是的,这是设计的<代码>匹配每个实际上是一个循环。如果项目数为零,则永远不会应用
匹配

如果要确保数组需要非空,请添加第二个检查

* def foo = [1, 2]
* match foo == '#[_ > 0]'
* match each foo == '#number'

谢谢你让我知道你也面临这个问题。不管你们把它作为答案发布,你们只需在我的问题上加上评论,谢谢你们让我知道你们也面临着这个问题。不管你是如何将其作为答案发布的,你只需在我的问题中添加评论即可。谢谢你的快速回复。非常感谢你对空手道的快速反应,它总是有帮助的!谢谢你的快速回复。非常感谢你对空手道的快速反应,它总是有帮助的!