Ниже моя JSON схема
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "array",
"items": [
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"stations": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"serial_number": {
"type": "string"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"serial_number",
"name"
]
}
]
}
},
"required": [
"id",
"name",
"stations"
]
}
]
}
Ниже json для проверки
[
{
"id": 1,
"name": "Test location",
"stations": [
{
"id": 1,
"serial_number": "TEST001",
"name": "TEST-STN!"
}
]
},
{
"id": 2,
"name": "Test location2"
}
]
Здесь элемент "станции" помечен как требуемый в схеме, но это отсутствует во втором пункте json. по-прежнему валидация tv4 пройдена.
Что нам действительно нужно, так это то, что она должна пройти проверку, поскольку элемент станции отсутствует во втором элементе
Наблюдение - ЕСЛИ элемент станции - НЕ присутствует в любом элементе JSON, тогда проверка не пройдена. Но если элемент станции присутствует в одном из элементов, проверка пройдена
pm.test("Login Validation", function() { pm.expect(tv4.validate(pm.response.json(), pm.environment.get('schema.json'), true, true), tv4.error).to.be.true;});
Я попробовал параметр tv4 "checkRecursive" со значениями true и false ... Тем не менее он проходит проверка
Любая помощь приветствуется