【发布时间】:2018-06-30 19:06:13
【问题描述】:
假设以下是 API 响应:
{
"content":
[
{
"id": 90008,
"capacity": 2,
"manufacturer": "NISSAN",
"model": "Sunny",
"comment": "Nice Compact car.",
"features": {
"high_grade": false,
"normal_grade": true
},
"images": [
{
"type": "OUTSIDE",
"url": "http://some-image-1.jpg"
},
{
"type": "INSIDE",
"url": "http://some-image-2.jpg"
}
],
"links": []
},
{
"id": 90009,
"capacity": 7,
"manufacturer": "Audi",
"model": "Q7",
"comment": "Very good leg space!",
"features": {
"high_grade": true,
"normal_grade": false
},
"images": [
{
"type": "OUTSIDE",
"url": "http://some-image-1.jpg"
},
{
"type": "INSIDE",
"url": "http://some-image-2.jpg"
}
],
"links": []
}
],
"page": {
"size": 20,
"total_elements": 2,
"total_pages": 1,
"number": 0
}
}
现在在邮递员中,我将如何发现内容中返回的父/主节点总数为 8,如下所示:
- 身份证
- 容量
- 制造商
- 型号
- 评论
- 功能
- 图片
- 链接
我尝试了以下方法,但失败了:
pm.test("Check total no. of nodes in all content is 8", () => {
for (i = 0; i < jsonData.content.length; i++) {
pm.expect(Object.keys(jsonData.content[i]).length).to.equal(8);
}
});
【问题讨论】:
-
对象的长度重要吗?如果属性的值发生更改,它将更改数据的配置文件,因此您可以返回 8 个不同的内容,并且测试仍然可以通过。您是否还确定它不是 0 索引 - 如果是这样,它将是 7 而不是 8。
-
是的 - 现在,对我来说,对象的长度很重要。我也在检查每个返回的节点名称及其值。是的 - 可以忽略 0 个索引节点,例如链接。
-
添加了一个答案 - 这对你有用吗?
-
这可能是题外话。但是你是怎么得到这个回复的?我试过 /entity/node?format_json 但没有运气
标签: javascript testing automated-tests postman functional-testing