Тестирование Postman API: Невозможно установить значение true - PullRequest
0 голосов
/ 10 октября 2018

Я тестирую API с помощью запроса GET, который возвращает следующие данные:

    {
    "Verified": true,
    "VerifiedDate": 2018-10-08
}

Я пытаюсь проверить, что первое поле вернулось, а второе поле имеет значение.У меня есть следующий код:

    pm.test("Verified should be true", function () {
   var Status = pm.response.json();
   pm.expect(Status.Verified).to.be.true;
});

    pm.test("Returns a verified date", function () {
   var Status = pm.response.json();
   pm.expect(Status.VerifiedDate).to.not.eql(null);

});

Утверждение на true не выполняется по следующей причине:

Проверено должно быть верно |AssertionError: ожидается, что undefined будет истинным

Почему первый тест не пройден?

Я запускаю тот же тест для команды post без проблем.

Есть идеи?

спасибо

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Вы также можете просто сделать это:

pm.test('Check the response body properties', () => {
    _.each(pm.response.json(), (item) => {
        pm.expect(item.Verified).to.be.true
        pm.expect(item.VerifiedDate).to.be.a('string').and.match(/^\d{4}-\d{2}-\d{2}$/)
    })
})

Проверка сделает несколько вещей за вас, она будет перебирать весь массив и проверять, что свойство Verified равно true, а такжепроверьте, что VerifiedDate является строкой и соответствует формату YYYY-MM-DD, как в примере, приведенном в вашем вопросе.

0 голосов
/ 11 октября 2018

Основная причина: Ваш результат - массив, но ваш тест проверяет объект.Таким образом, почтальон сгенерирует исключение, так как он не может сравнивать.

Решение: Использовать точно значение элемента в списке с командой if else для сравнения.

var arr = pm.response.json(); 
console.log(arr.length) 
for (var i = 0; i < arr.length; i++)
{ 
    if(arr[i].Verified === true){
        pm.test("Verified should be true", function () {
            pm.expect(arr[i].Verified).to.be.true;
        });
    }
    if(arr[i].Verified === false){
        pm.test("Verified should be false", function () {
            pm.expect(arr[i].Verified).to.be.false;
        });
    }     
}

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...