首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在API中使用断言检查JSON中的数组是错误的

在API中使用断言检查JSON中的数组是错误的
EN

Stack Overflow用户
提问于 2020-10-15 12:25:53
回答 1查看 87关注 0票数 0

我正在尝试使用PostMan进行API测试,我试图检查某个特定的图书名是否与从GET调用返回的数据一起存在。返回的数据是一个数组。

这是JSON:

代码语言:javascript
复制
{
"docs": [
    {
        "_id": "5cf5805fb53e011a64671582",
        "name": "The Fellowship Of The Ring"
    },
    {
        "_id": "5cf58077b53e011a64671583",
        "name": "The Two Towers"
    },
    {
        "_id": "5cf58080b53e011a64671584",
        "name": "The Return Of The King"
    }
],
"total": 3,
"limit": 1000,
"offset": 0,
"page": 1,
"pages": 1
}

这是我写的测试:

代码语言:javascript
复制
let jsonData = pm.response.json()
console.log(jsonData);
pm.test('Check Book Name, () =>{
_.each(jsonData.docs, (docs)=>{
pm.expect(docs.name).to.eql("The Fellowship Of The Ring");
})
});

我收到以下错误:

您的测试名: AssertionError:期望“双塔”与“环的联谊会”相当。

我不明白为什么它检查的是双塔,而不是数组中明显存在的研究金

EN

回答 1

Stack Overflow用户

发布于 2020-10-15 13:16:45

您期望每一本返回的书都有The Fellowship Of The Ring的名称。

您可以使用一个循环来检查每本书:

代码语言:javascript
复制
let jsonData = pm.response.json();

const expectedBooks = ["The Fellowship Of The Ring", "The Two Towers", "The Return Of The King"]

var numberOfBooks = expectedBooks.length;

for (var i = 0; i < numberOfBooks; i++){
    pm.test('Check Book Name ' +  i, function () {
        pm.expect(jsonData.docs[i].name).to.eql(expectedBooks[i]);
    });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64371541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档