Почтальон - Тест на соответствие количества объектов во вложенном объекте

Я хочу написать тест для проверки того, что количество объектов, вложенных в «дети», равно тому, что я ожидаю. Скажем, в данном случае это 2.

Это тело ответа, с которым я тестирую:

{
    "result": {
        "line_item": {
            "name": null,
            "description": "abc",
            "quantity": 1.0,
            "children": [
                {
                    "sku": "xxx",
                    "quantity": 1.0,
                    "description": "abc"
                },
                {
                    "sku": "yyy",
                    "quantity": 3.0,
                    "description": "def"
                }
        ]
    }       
  }
} 

Я пробовал несколько вещей, одна из них:

let josnData = pm.response.json();

var children = jsonData.result.line_item.chilren;

var length_children = children.length;

pm.test("Only 2 objects in Children", function (){
    pm.expect(length_children).to.eql(2);
});

Это просто вызывает ошибку. Буду признателен за любые идеи, как с этим справиться. Очень новичок в тестировании в почтальоне и очень хочет учиться. Спасибо!


person Arielle Olache    schedule 26.03.2020    source источник


Ответы (2)


Я понял. Но определенно интересуют другие способы. Вот что я сделал.

var body = JSON.parse(responseBody);
var list = body.result.line_item.children.length;

pm.test("Only 2 objects in children", function(){
    pm.expect(list).to.eql(2);
    });
person Arielle Olache    schedule 26.03.2020

Вероятно, это сделало бы то же самое, что и ваше решение:

let children = pm.response.json().result.line_item.children;

pm.test("Only 2 objects in Children", function () {
    pm.expect(children.length).to.eql(2);
});
person Danny Dainton    schedule 26.03.2020