[英]Postman BDD testing array of object REST API
我正在使用Postman BDD / Chai编写测试,并且遇到测试数组响应的问题。
所以我的API返回的内容与
[
{
"id": 1,
"firstName": "x",
"lastName": "y",
"dateOfBirth": "2018-04-21",
"username": "user"
},
{
"id": 2,
"firstName": "x",
"lastName": "y",
"dateOfBirth": "2018-04-21",
"username": "admin"
}
]
如何检查回复中是否包含某些成员?
expect(response).to.have.property('id');
由于响应是一个数组,因此似乎没有作用。 将响应更改为response [0]似乎也没有任何改变。
建议?
您可以仅在“ Tests
选项卡中添加类似的内容,而无需使用Postman BDD库。 我在这里使用了Lodash,但是您可以使用for loop
对本机JS执行相同的操作:
pm.test('Response has the ID property', () => {
_.each(pm.response.json(), (arrItem) => {
console.log(arrItem)
pm.expect(arrItem).to.have.property('id')
})
})
您可以扩展它以检查整个对象中是否存在特定元素-例如,在测试中添加另一行,例如pm.expect(arrItem).to.have.property('firstName')
。
如果您使用的是PostmanBDD库,则可以添加一个for
循环来检查id
属性:
eval(globals.postmanBDD)
describe('Get id data', () => {
it('should check the id property is present', () => {
for(i=0; i < response.body.length; i++) {
console.log(response.body[i])
response.body[i].should.have.property('id')
}
})
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.