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

Javascript 在API中使用断言检查JSON中的数组是错误的,javascript,json,api,postman,Javascript,Json,Api,Postman,我正在尝试使用PostMan进行API测试,我正在尝试检查从GET调用返回的数据中是否存在特定的图书名称。返回的数据是一个数组 这是JSON: { "docs": [ { "_id": "5cf5805fb53e011a64671582", "name": "The Fellowship Of The Ring" }, { &

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

这是JSON:

{
"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
}
这是我写的测试:

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");
})
});
我遇到以下错误:

您的测试名称|断言者错误:预计“双塔”将被删除 平等的“魔戒团契”


我不明白为什么它要检查两座塔而不是阵列中明显存在的团契

你希望每本归还的书都有一个名字
戒指团契

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

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]);
    });
}
让jsonData=pm.response.json();
const expectedBooks=[《魔戒团契》、《双塔》、《国王归来》]
var numberOfBooks=预期的Books.length;
for(var i=0;i
您正在遍历所有
文档
,并期望每个
名称
都等于“魔戒团契”…!?您的代码明确地说明了这一点:
对于jsonData.docs中的每个文档,希望标题等于“魔戒团契”
。所以测试失败了。