Проверьте нулевое значение в тестовых случаях Почтальона.not.eql() или.not.equal() не работают

Я работаю с проектом API и использую Postman для тестирования API. Я написал несколько тестов для проверки нуля следующим образом:

//user id is present
pm.test("user id is present", function() {
    pm.expect(jsonData.data[0].userId).not.eql(null);
});

Также пробовал с .not.equal() как описано в этом ответе.

//user id is present
pm.test("user id is present", function() {
    pm.expect(jsonData.data[0].userId).not.equal(null);
});

Тем не менее, все это проходит, даже если userId null, Кто-нибудь еще думал проверить нулевое значение в тестовом примере Почтальона?

1 ответ

Решение

Прежде всего, откройте консоль и запустите текущий фрагмент, чтобы проверить типы:

pm.test("user id is present", function() {
   console.log(typeof jsonData.data[0].userId);
   console.log(typeof jsonData.data[0]);
   console.log(typeof jsonData);
}

Если вы получаете undefined за jsonData.data[0].userId, вам нужно изменить свой тест, чтобы утверждать null а также undefined:

pm.test("user id is present", function() {
   pm.expect(jsonData.data[0].userId).to.exist //check if it is not equal to undefined
   pm.expect(jsonData.data[0].userId).to.not.be.null; //if it is not equal to null
}
Другие вопросы по тегам