#javascript #testing #automated-tests #postman #qa
#javascript #тестирование #автоматизированные тесты #postman
Вопрос:
Ниже приводится тело ответа API:
[
{
"exercise_num": "1",
"expire_date": "2019-03-11T16:31:17.935Z",
"created_at": "2019-03-15T11:44:35.698Z"
},
{
"exercise_num": "2",
"expire_date": "2019-03-11T16:31:17.935Z",
"created_at": "2019-03-15T11:44:38.363Z"
}
]
В тестах Postman как проверить, является ли узел exercise_num в теле ответа выше уникальным?
Ответ №1:
Отфильтруйте уникальные exercise_num
значения и сравните длину фактического массива и массива уникальных значений. Где вы можете использовать Array#reduce
метод для фильтрации уникальных значений.
pm.test("Your test name", function() {
var jsonData = pm.response.json();
pm.expect(jsonData.reduce(function(arr, b) {
if (!arr.includes(b.exercise_num)) {
arr.push(b.exercise_num);
}
return arr;
}, []).length).to.eql(jsonData.length);
});
Комментарии:
1. Привет, Пранав! Ценю ваш быстрый ответ. Я попробовал приведенный выше код, и postman выдает следующую ошибку: «TypeError: не удается прочитать свойство ‘reduce’ из undefined»
2. @NoorYeaserKhan: Я только что обновил, пожалуйста, проверьте сейчас
3. Огромное спасибо Пранаву. Теперь это работает отлично. Большое вам спасибо!