Я хотел бы проверить ответ на запрос GET / birds с помощью схемы json. В моей особенности:
* def abs = read (birds.json)
* match response == abs.birdsSchema
Мне нужно поместить схему в файл json, а не в функцию. Мне нужно проверить дополнительные значения в зависимости от пола. Пример: если пол мужской, проверьте, синий ли цвет, а хвост длинный или короткий. если пол женский, проверьте, истинно ли "поет" или нет, а также количество яиц.
Поэтому я вставил birds.json:
"birdsSchema":{
"id": "#string",
"owner": "#number",
"town": "#? _ == 'New York' || _ == 'Washington'",
"type": "object",
"oneOf": [
{
"properties": {
"gender": {"enum": ["male"]},
"color":"blue",
"tail": "#? _ == 'long' || _ == 'short'"
}
},
{
"properties": {
"gender": {"enum": ["female"]},
"sings" : "#? _ == true || _ == false"
"eggs": "##number"
}
}
]
}
Но это не работает. Ошибка: com.intuit.karate.exception.KarateException: путь: $ [0] .type, фактический: «женский», ожидаемый: «объект», причина: не равно. Как я могу выполнить эту условную проверку в моем файле json?