Тест почтальона всегда проходит, даже если он не проходит - PullRequest
3 голосов
/ 06 марта 2020

Во время выполнения тестов почтальона контрольный пример, кажется, всегда проходит. Тело ответа приведено ниже. Я пытаюсь получить идентификатор, когда имя «Erin», и проверить, что идентификатор равен 800. Небольшой фрагмент кода, который я написал, находится ниже тела ответа, написанного ниже. По какой-то причине тест всегда возвращает true. Если по какой-то причине, если Эрин и 800 нет, он все равно проходит тест.

[
 {
  "id":991,
  "name":"Tomy"
 },
 {
  "id":800,
  "name":"Erin"
 }
]
Code:
pm.test("Validate id to be 800", function() {
   var jsonData = pm.response.json();
   for(int i=0; i<responseJson.length;i++){ 
      if(jsonData[i].name=='Erin'){
         pm.expect(jsonData[i].id).to.eql(800);
      }
     }
});

Обновил ответ чуть ниже, я хотел, чтобы мой тест не прошел, так как "Джек" не найден и прошел только если Джек найден

pm.test("Validate id to be 800", function () {
  let jsonData = pm.response.json();
  for(i=0; i < jsonData.length; i++) { 
     if(jsonData[i].name == 'Jack') {
        pm.expect(jsonData[i].id).to.eql(800);
      }
     }
  });

1 Ответ

1 голос
/ 06 марта 2020

Это тело ответа выглядит не совсем правильно для меня, я ожидаю увидеть кавычки вокруг ключей свойств в объектах.

Кроме того, ваши ссылки не были названы правильно, и это пройдет тест как это не привело бы к ошибкам ссылок в сценариях.

Это должно помочь вам:

pm.test("Validate id to be 800", function () {
   let jsonData = pm.response.json();

   for(i=0; i < jsonData.length; i++) { 
      if(jsonData[i].name === 'Erin') {
        pm.expect(jsonData[i].id).to.eql(800);
      }
    }
});

Вы можете переписать тестовый код примерно так:

pm.test("Validate id to be 800", () => {
    let jsonData = pm.response.json();

    jsonData.forEach(item => {
        if(item.name === 'Erin') {
            pm.expect(item.id).to.eql(800);
         }
    });
});

Postman

И результаты испытаний при сбое:

enter image description here

...