Как проверить длину атрибутов в массиве и убедиться, что не отображаются дополнительные атрибуты? - PullRequest
0 голосов
/ 10 июля 2020

Я проверил длину ввода как var resp = (body.input) .length и убедился, что она не равна 0. Но я также хочу проверить, что в каждом наборе доступны только имя, фамилия и rollno, и счет будет быть всегда 3. Как проверить, что это тест почтальона?

Тело ответа:

{
"success": true,
"input":[
{
    firstname:"Ram"
    lastname:"Lakshmanan"
    rollno: "11"
},
{
    firstname:"Pravi"
    lastname:"Reshma"
    rollno: "12"
}
]
}

Мой тест выглядит следующим образом:

var i;
for(i=0 ; i< resp ; i++){

   var resp_firstname = body.input[i].firstname;

   pm.test("Verify first name is available and not empty",function(){
      pm.expect(resp_firstname).to.exist;
      pm.expect(resp_firstname).to.not.eql();
}

1 Ответ

0 голосов
/ 11 июля 2020

Прежде всего, тело ответа, указанное в вопросе, не является действительным JSON. Допустимые json данные должны выглядеть так =

{
   "success":true,
   "input":[
      {
         "firstname":"Ram",
         "lastname":"Lakshmanan",
         "rollno":"11"
      },
      {
         "firstname":"Pravi",
         "lastname":"Reshma",
         "rollno":"12"
      }
   ]
}

вы можете сделать это так:

pm.test("Verify object has expected properties", function () {
    // loop through input array
    for (var i = 0; i < Object.keys(json.input).length; i++) {
        console.log(i);
        pm.expect(json.input[i]).to.have.property("firstname");
        pm.expect(json.input[i]).to.have.property("lastname");
        pm.expect(json.input[1]).to.have.property("rollno");
        //assert length of properties
        pm.expect(Object.keys(json.input[i]).length).to.eql(3);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...