Интуитивное каратэ: как проверить динамический массив JSON - PullRequest
0 голосов
/ 30 мая 2018

Я уже некоторое время использую каратэ, но я застрял в том, как проверить этот динамический массив.Массив яблок различается по размеру, когда я нажимаю API.

Как пройти по одному массиву и проверить цены?

JSON:

  {
    "data": {
        "apple": [
            {
                "a": 0,
                "price": 1970,
                "date": "2018-05-30"
            },
            {
                "a": 1,
                "price": 1266,
                "date": "2018-05-31"
            },
            {
                "a": 2,
                "price": 1422,
                "date": "2018-06-01"
            }
        ]
    },
    "status_code": 200
}

1 Ответ

0 голосов
/ 30 мая 2018

Известен ли вам синтаксис match each?

* def response = 
"""
{
    "data": {
        "apple": [
            {
                "a": 0,
                "price": 1970,
                "date": "2018-05-30"
            },
            {
                "a": 1,
                "price": 1266,
                "date": "2018-05-31"
            },
            {
                "a": 2,
                "price": 1422,
                "date": "2018-06-01"
            }
        ]
    },
    "status_code": 200
}
"""
* match each response.data.apple == { a: '#? _ < 3', price: '#number', date: '#regex \\d{4}-\\d{2}-\\d{2}'}

РЕДАКТИРОВАТЬ: если вы пытаетесь делать динамические вещи, это то, что JS-взаимодействие Карате может помочь с

# work on the second item in the array
* def index = 1
* def second = response.data.apple[index]
* match second.price = 1266
...