Проверить свойство вложенного элемента - тест почтальона - PullRequest
1 голос
/ 06 марта 2020

Помогите получить тип свойства вложенного элемента из ответа JSON в почтальоне. Ниже мой ответ после выполнения POST.

{
    "MyList": [
        [
            {
                "id": 1,
                "name": "Test"
            }
        ]
    ]
}

Я хотел бы проверить свойства name и id, если они имеют тип числа и строку. Ниже приведен мой код, но я получаю сообщение об ошибке: невозможно прочитать свойство '0' из undefined.

 pm.test("Check schema and datatype", () =>{
    var jsonData = pm.response.json();

    pm.expect(typeof(jsonData[0].id)).to.eql('number');
    pm.expect(typeof(jsonData[0].name)).to.eql('string');
 })

1 Ответ

0 голосов
/ 07 марта 2020

Хотя ваш response body выглядит немного странно для меня, вы можете создать тест для проверки этих типов данных, например:

pm.test("Check schema and datatype", () => {
    let jsonData = pm.response.json();

    pm.expect(jsonData.MyList[0][0].id).to.be.a('number');
    pm.expect(jsonData.MyList[0][0].name).to.be.a('string');
})

Это использует метод chai a:

https://www.chaijs.com/api/bdd/#method_a

РЕДАКТИРОВАТЬ

Чтобы проверить размер или количество объектов в массиве, вы можете использовать это:

pm.test("Verify number of records returned", () => { 
    let jsonData = pm.response.json().MyList[0]
    pm.expect(jsonData.length).to.equal(1);
});
...