Использование match each contains для утверждения json элементов массива - PullRequest
1 голос
/ 13 июля 2020

Я хотел бы добавить утверждение о массиве навыков, содержащем «обучение» в каждом из элементов массива ответов. как я могу сделать это, используя соответствие каждому формату * match each response contains { password: 'abc123' } (без использования выражения JsonPath). Я ожидаю, что мой тест будет провален для следующего примера, поскольку в четвертом объекте отсутствует массив навыков.

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"
    }
]
"""

1 Ответ

1 голос
/ 13 июля 2020

Вот go:

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

Знаете, вам действительно стоит прочитать документацию. Это сэкономит вам много времени :) https://github.com/intuit/karate#schema -validation

...