我的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"
}
]
我想验证邮递员中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等于未定义的深度。”
我在这里做错了什么?
您可以使用类似的方法来检查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);
});