【问题标题】:Issues with testing an empty array测试空数组的问题
【发布时间】:2020-01-19 15:12:47
【问题描述】:

我在编写测试以验证我的数组中的值是否为空时遇到问题 []

这是我尝试过的几个测试

pm.test("Empty", function() {
var jsonData = pm.response.json();
pm.expect(jsonData.Big.Value).to.eql(undefined);
});

pm.test("Empty", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.Big.Value.length).to.eql(0);
});

这是我的请求响应

[
    {
        "id": "",
        "date": "2019-09-20",
        “Big”: {
            “BigLabel": "Times",
            “Value”: []
        },
        "body": null
    },
    {
        "id": "",
        "date": "2019-09-21",
        "Big": {
            “BigLabel": "Times",
            “Value”: []
        },
        "body": null
    }
]

Expected 是验证 Value 是否为空的测试

【问题讨论】:

  • 当然这应该是jsonData[0].Big.Value.length,因为json数据是一个对象数组而不是一个对象。
  • 另外,两个对象上的.Value 属性永远不会是undefined,它等于一个空数组,因此即使您以这种方式正确地确定范围,第一个测试也会失败@Deckerz 在上面推荐。
  • @Deckerz 非常感谢您的成功。
  • 此外,如果您发布多个,则需要一个 for 循环来测试所有这些 [0] 仅执行数组中的第一个条目@wyattbrandon
  • 是的@Deckerz,我通过识别它的对象数组而不仅仅是一个对象,就让 for 循环工作了。

标签: javascript arrays postman


【解决方案1】:

这当然应该是 jsonData[0].Big.Value.length,因为 json 数据是对象数组而不是对象。 – @Deckerz 回答了这个问题,但由于这是一条评论,我无法结束问题。再次感谢@Deckerz

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    相关资源
    最近更新 更多