Karate 使用match each contains for json数组项断言

Karate 使用match each contains for json数组项断言,karate,Karate,我想在技能数组中添加一个断言,在响应数组下的每个项目中都包含“培训”。如何使用match-each-format*匹配每个包含{password:'abc123'}(不使用JsonPath表达式)的响应。我预计我的测试会失败,例如下面的例子,因为第四个对象中缺少skills数组 Scenario: Test scenario * def response = """ [ { id: 1, name: "John&q

我想在技能数组中添加一个断言,在响应数组下的每个项目中都包含“培训”。如何使用match-each-format
*匹配每个包含{password:'abc123'}
(不使用JsonPath表达式)的响应。我预计我的测试会失败,例如下面的例子,因为第四个对象中缺少skills数组

Scenario: Test scenario

* def response =
"""
[
    {
        id: 1,
        name: "John",
        password: "abc123",
        skills :[ "training", "management"
        ]
    },
    {
        id: 2,
        name: "David",
        password: "abc123",
        skills :[ "training", "management"
        ]
    },
    {
        id: 3,
        name: "David",
        password: "abc123",
        skills :[ "training", "coding"
        ]
    },
    {
        id: 4,
        name: "David",
        password: "abc123"
    }
]
"""
给你:

* def expectedSkills = ['training']
* match each response contains { skills: '#(^expectedSkills)' }

你知道,你应该认真阅读文档。它将为您节省大量时间:)

是的,它正在工作。我在JsonPath表达式中使用了match each。但是遇到了一个场景,断言中使用的json数组在响应中丢失,而空手道通过了该场景。因此,即使在了解了一些情况后,也无法从中获得观点。无论如何,谢谢你的回复。你们有很好的文档。