邮递员测试循环遍历嵌套对象数组以查找空值

如何解决邮递员测试循环遍历嵌套对象数组以查找空值

我想请你帮忙/解决办法。 当我必须确保每个联系人都包含数组“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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?