Как проверить схему JSON в почтальоне, используя tv4?
Это то, что я пытаюсь, но он всегда проходит тест даже на плохие результаты.
pm.test("Schema is valid", function () {
var data = pm.response.json();
var schema = {
...
my schema
...
};
tv4.validate(data, schema);
});
1 ответ
Причина, по которой это не работает, заключается в том, что базовая библиотека, используемая Почтальоном (tv4), больше не поддерживается. Столкнувшись с проблемой сегодня утром, я нашел решение:
tv4.validate(data, schema, false, true)
Последние два параметра - это checkRecursive и banUnknownProperties. Установка этих двух флагов, как показано выше, делает проверку правильной работы.
Вы также можете найти этот фрагмент кода полезным, который сообщает о любых ошибках проверки через консоль:
pm.test("Response body is valid", function() {
var data = JSON.parse(responseBody);
var valid = tv4.validate(data, schema, false, true);
if (valid !== true) {
console.log(tv4.error);
}
pm.expect(valid).to.be.true;
});