Как проверить в карате, содержит ли узел ожидаемое значение из ответа json

Сценарий таков, что я получил следующий ответ JSON, например, например:

[
    {
        "a": "a",
        "b": "a",
        "c": "a",
    }
    {
        "a": "ab",
        "b": "ab",
        "c": "ab",
    }

]

Теперь я хочу проверить, содержит ли ответ «ab» в узле «b». В каратэ я не понимаю, как это делать.

Указанный путь 'url' Когда метод получает Статус 200 И соответствует ответу == ??


person NRT    schedule 27.09.2017    source источник


Ответы (1)


Я рекомендую вам внимательно прочитать документ, Каратэ обладает большой гибкостью в этом отношении. Ниже приведены несколько примеров, вы можете вставить их в свой *.feature файл и сами убедиться, что они работают:

* def response =
"""
[
    {
        "a": "a",
        "b": "a",
        "c": "a",
    },
    {
        "a": "ab",
        "b": "ab",
        "c": "ab",
    }
]
"""
* match response[1] contains { b: 'ab' }
* match response contains { a: 'ab', b: 'ab', c: 'ab' }
* match response contains { a: '#ignore', b: 'ab', c: '#notnull' }
* def expected = { b: 'ab' }
* match response contains '#(^expected)'
person Peter Thomas    schedule 27.09.2017