Using match each contains for json array items assertion
I would like to add an assertion on skills array containing 'training' in each of the items under response array. how can I do this using match each format * match each response contains { password: 'abc123' }
(without using JsonPath expression). I'm expecting my test to be failed for below example since skills array is missing in fourth object.
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"
}
]
"""
Solution 1:
Here you go:
* def expectedSkills = ['training']
* match each response contains { skills: '#(^expectedSkills)' }
You know, you should really read the documentation. It will save you a LOT of time :) https://github.com/intuit/karate#schema-validation