我的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"。
我在这里做错了什么?
答案 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
})
})
使用您附加到问题的数据,我将其扩展为将另一个对象添加到数组中。这是为了向您展示此测试将检查each
对象old_value
属性是否具有相同的null
值,而不是仅限于查看第一个[0]
对象。 / p>