Соответствие ответов JSON API с использованием каратэ - PullRequest
0 голосов
/ 11 сентября 2018

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

ПОЛУЧИТЬ ОТВЕТ API

{
"address": {
    "city": "Warsaw",
    "street": "1212 Main St",
    "postalCode": "22-333"
},
"dateOfBirth": "1996-09-08T00:00:00+0000",
"email": "auth@mail.com",
"id": "123456",
"givenName": "Clap",
"mobilePhone": "23456778787",
"familyName": "Customer"
}

Я могу управлять Валидацией, используя ниже

And match header vary == 'origin' 
And match header Content-Type == 'application/json; charset=utf-8' 
And match header access-control-expose-headers == 'WWW-Authenticate,Server-Authorization' 
And match header cache-control == 'no-cache' 
And match header accept-ranges == 'bytes' 
And match header Content-Length == '225' 

And match $.dateOfBirth == '1996-09-08T00:00:00+0000' 
And match $.email == 'auth@mail.com' 
And match $.id == '123456' 
And match $.givenName == 'Clap' 
And match $.mobilePhone == '23456778787' 
And match $.familyName == 'Customer' 

And match response.address.city contains 'Warsaw' 
And match response.address.street contains '1212 Main St' 
And match response.address.postalCode contains '22-333' 

Я попробовал некоторые из приведенных подходов, но это не помогает при проверке.

1 Ответ

0 голосов
/ 13 сентября 2018

Прочитайте документы.Вы можете сопоставить ответ JSON в одной строке:

* match response ==
"""
{
"address": {
    "city": "Warsaw",
    "street": "1212 Main St",
    "postalCode": "22-333"
},
"dateOfBirth": "1996-09-08T00:00:00+0000",
"email": "auth@mail.com",
"id": "123456",
"givenName": "Clap",
"mobilePhone": "23456778787",
"familyName": "Customer"
}
"""

Обычно вам не нужно сосредотачиваться на заголовках, поскольку они имеют тенденцию меняться в зависимости от типа сервера, операционной системы и т. Д. Может быть, некоторые тестыможет делать то, что вы делаете, но не все.

...