Я хотел бы проверить схему json для ответа json с объектами, содержащими другие объекты. Пример ответа json на запрос GET / person / id, который отправит объект person:
{
"id":"789",
"name":"Jane",
"children":[
{
"id":"111",
"name":"Bill",
"hobbies":[
"chess",
"knitting"
],
"schools":[
{
"id":"111A",
"name":"LA public"
},
{
"id":"111B",
"name":"NY public"
}
]
}
]
}
Запрос GET / Person отправит массив, содержащий объекты person.
Пример функции для проверки(Validator.feature):
Feature: json schema validation
Scenario:
* def schoolSchema =
"""
{
id: '#string',
name: '#string'
}
"""
* def childrenSchema =
"""
{
id: '#string',
name: '#string',
hobbies: '#regex \d (playing|singing|knitting|chess)',
schools: '##[] schoolSchema'
}
"""
* def personSchema =
"""
{
id: '#string',
name: '#string',
children: '#[] childrenSchema'
}
"""
Я не хочу ставить в конце этой функции * match each response == personSchema
или * match response == personSchema
Я хотел бы вызвать функцию проверки схемыиз моей основной функции, как это:
Given url url
And path 'persons'
When method get
Then status 200
And match each response == call read('Validator.schema')
Given url url
And path 'persons', id
When method get
Then status 200
And match response == call read('Validator.schema')
для проверки ответов на оба запроса. Мне нужно поместить эту схему в объект или в файл json, чтобы иметь только одно место для изменения схемы json. Как я мог это сделать?