POSTman测试抛出断言错误

时间:2018-05-23 12:52:00

标签: javascript postman chai

我的API响应如下:

[
    {
        "id": 1,
        "instance_id": 1400,
        "entity_uuid": 21,
        "field": null,
        "old_value": null,
        "new_value": null,
        "kind": "C",
        "updated_by": "binish",
        "updated_dt": "2017-12-28T13:19:22.000Z"
    }
]

我想在POSTman中验证old_value字段的值,下面是代码

var data = pm.response.json(responseBody);
var oldValue = data.old_value;
var nullValue = null;

pm.test("Old Value is NULL", function(){
    pm.expect(nullValue).to.be.eql(oldValue);
});

测试引发错误:

  

" AssertionError:期望null为深度等于undefined"。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

这一行有误:var data = pm.response.json(responseBody); 你不需要那个论点,因为正如你在documentation中看到的那样,这里的论证是可选的,第一个参数是function(), 在我看来,它会起作用:删除这个论点后:

var data = pm.response.json();
var oldValue = data[0].old_value; //data is array
var nullValue = null;

pm.test("Old Value is NULL", function(){
    pm.expect(nullValue).to.be.eql(oldValue);
});

答案 1 :(得分:0)

您是否可以使用此类内容检查old_value属性是否为null?这是使用内置模块Lodash允许您以比原生JS for循环更干净的方式循环数据。

pm.test("Old Value is NULL", () => {
    _.each(pm.response.json(), (arrItem) => {
        console.log(arrItem)
        pm.expect(arrItem.old_value).to.be.null
    })
})

Postman

使用您附加到问题的数据,我将其扩展为将另一个对象添加到数组中。这是为了向您展示此测试将检查each对象old_value属性是否具有相同的null值,而不是仅限于查看第一个[0]对象。 / p>

Postman