Я пытаюсь проверить схему ответа API с помощью этой структуры в каратэ:
{
"payoutQuotes": [ //could be empty or not but when not empty must have the required object structure inside
{
"customerDomain": {
"financialAccountData": {
"payoutQuoteId": "#number",
"payoutQuoteExpiryDate": "#? isValidDate(_)",
"totalAmountOfPayoutQuote": "#number",
"payoutQuoteCreateDate": "#? isValidDate(_)",
"payoutRequestedBy": "#string"
}
}
}
]
}
Теперь, если ответ возвращает пустой массив «payoutQuotes», это приемлемо, но когда он также содержит объекты внутри, я хочу проверить, что они имеют правильные требуемые комбинации ключ-значение. Обратите внимание, что эта схема сохранена в виде отдельного файла в моей папке данных проекта, который будет использоваться для проверки моей схемы.
Вот подход, он должен быть простым. Вы можете прочитать значение quote
из одного файла.
* def quote = { foo: '#string' }
* def response1 = { payout: [] }
* def response2 = { payout: [{ foo: 'bar' }] }
* match response1 == { payout: '#[] quote' }
* match response2 == { payout: '#[] quote' }
Как вы предложили, я обновил файл Json своей схемы, чтобы он стал подсхемой, которая проверяет объект внутри массива, и написал свою строку оценки как:
And match response == {"payoutQuotes": '#[] PayoutQuoteHistorySuccessSchema'}
И это сработало ... спасибо, @peter