如何解决邮递员测试循环遍历嵌套对象数组以查找空值
我想请你帮忙/解决办法。 当我必须确保每个联系人都包含数组“phone_numbers”和“email”并获得一些值(不是空数组或值)时,我进行了测试。 我知道有测试的语法,例如:
pm.test("Check for empty array's values",() => {
pm.expect(jsonData.contacts[1].phone_numbers).to.not.eql([]);
});
问题是我不想一一查,因为有时候很大。 我很确定有一个简单的解决方案。 我注意到一些联系人包含空的电子邮件、电话号码或两者都包含。例如"id": "id": 33333564 我以后不能允许。
提前致谢:-)
{
"contacts": [
{
"id": 11121211,"direct_link": "https://example.example","first_name": "test1","last_name": "test","company_name": "test","information": null,"is_shared": true,"created_at": 1582798926,"updated_at": 1582798926,"emails": [],"phone_numbers": [
{
"id": 60065270,"label": "Work","value": "+33134567666"
}
]
},{
"id": 22222222,"first_name": null,"last_name": null,"company_name": null,"created_at": 1583686067,"updated_at": 1583686067,"phone_numbers": [
{
"id": 22266444,"value": "+33134567899"
}
]
},{
"id": 33333564,"first_name": "Jessica","last_name": "Biel","company_name": "N-Sync","created_at": 1583686086,"updated_at": 1583686086,"phone_numbers": []
},{
"id": 45678901,"created_at": 1583686105,"updated_at": 1583686105,"value": "+33134567333"
}
]
},{
"id": 56789123,"first_name": "Jacky","last_name": "Rowland","company_name": "Test Company1","information": "","created_at": 1583745888,"updated_at": 1608556499,"emails": [
{
"id": 76594398,"value": "mandatory_field@example.com"
}
],"phone_numbers": [
{
"id": 60650277,"label": "Mobile","value": "+33652556777"
}
]
}
],"Meta": {
"count": 6,"total": 241,"current_page": 1,"per_page": 5,"next_page_link": "https://example.example","prevIoUs_page_link": null
}
}
解决方法
a = pm.response.json()
pm.test("Check for empty array's values",() => {
checkEmpty = a.contacts.filter((a) => _.isEqual(a["phone_numbers"],[]))
pm.expect(checkEmpty,JSON.stringify(checkEmpty)).to.be.empty
});
pm.test("Check for e5mpty array's values",() => {
checkEmpty = a.contacts.map((a) => pm.expect(a["phone_numbers"],JSON.stringify(a)).to.be.eq([]))
});
这里我们检查该联系人数组中是否有任何元素将电话号码作为空数组,如果是,则返回它。我们期望 array.filter 不返回任何内容(意味着不应该有任何空电话号码)
在第二个测试中,我们使用 array.map 来检查是否有任何函数不为空
您可以使用上述任何一个测试函数,如果失败则异常打印数组内容
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。