邮递员:测试抛出断言错误`expected null to deeply equal undefined`

Postman: test throws assertion error `expected null to deeply equal undefined`

我有一个 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: expected null to deeply equal undefined".

我做错了什么?

你能用这样的东西来检查 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
    })
})

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

这一行有错误: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);
});