【发布时间】:2021-10-16 22:45:08
【问题描述】:
我刚开始使用邮递员测试 api。我遇到了一个关于 json 路径的问题..
在 json 文件中我有如下代码
{
"users": [
{
"firstName": "UserOne",
"lastName": "One",
"subjectId": 1,
"id": 1
},
{
"firstName": "UserTwo",
"lastName": "Two",
"subjectId": 2,
"id": 2
},
{
"firstName": "UserThree",
"lastName": "Three",
"subjectId": 3,
"id": 3
}
],
"subjects": [
{
"id": 1,
"name": "SubOne"
},
{
"id": 2,
"name": "SubTwo"
},
{
"id": 3,
"name": "SubThree"
}
]
}
我用json-server --watch db.json启动json服务器
之后我使用邮递员发送 GET 请求
请求网址http://localhost:3000/users
这是我得到的身体
[
{
"firstName": "UserOne",
"lastName": "One",
"subjectId": 1,
"id": 1
},
{
"firstName": "UserTwo",
"lastName": "Two",
"subjectId": 2,
"id": 2
},
{
"firstName": "UserThree",
"lastName": "Three",
"subjectId": 3,
"id": 3
}
]
我试图使用下面的 sn-p 代码验证 id 1 中的名字
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.users[0].firstName).to.eql('UserOne');
});
但输出是
FAIL Your test name | TypeError: Cannot read property '0' of undefined
我在这里需要帮助,因为 json 路径 users[0].firstName 应该给我第一个索引..
【问题讨论】:
-
您是否尝试过记录 jsonData 以查看用户数组是否存在于您的响应中?
-
是
var jsonData = JSON.parse(responseBody); console.log(jsonData.users);输出undefined