【问题标题】:Unit Test to find a keyword in a response array单元测试以在响应数组中查找关键字
【发布时间】:2021-10-27 08:47:34
【问题描述】:

大家好,我是新来的,

我的响应数据看起来像这样

[
    {
        "Outlet": "Outlet1",
        "Inventory": 12
    },
    {
        "Outlet": "Outlet2",
        "Inventory": 0
    },
    {
        "Outlet": "Outlet3",
        "Inventory": 3
    },
    {
        "Outlet": "Outlet4",
        "Inventory": 0
    }
}

我需要验证 outlet 1 库存是否准确 12,除 outlet1 库存之外的所有其他数据是否为 ​​0。我需要循环测试吗?

我已经试过了:

pm.test("Inventory.OnHand Outlet1 == 12", () => {
    let Outlet1Result = jsonData.find(a => a.Outlet === "Outlet1")
    pm.expect(Outlet1Result.Outlet).to.eql("Outlet1")
    pm.expect(Outlet1Result.Inventory).to.eql(12)
});


pm.test("Inventory.OnHand not Outlet1 == 0", () => {
    if (jsonData.Outlet !== "Outlet1") {
    jsonData.forEach(function() {
        let result2 = jsonData.find(a => a.Outlet !== "Outlet1")
        pm.expect(result2.Inventory).to.eql(0)
    }) ;
  }  
});

我尝试过使用这 2 个测试,第一个测试工作得很好,但我认为第二个测试是错误的,因为它通过了,它不应该通过,因为插座 3 库存是 3,文本期望它是 0

【问题讨论】:

    标签: unit-testing postman postman-testcase


    【解决方案1】:

    其他方式是:

    pm.test("Validate inventory values", () => {
        jsonData.forEach(function (item) {
            if (item.Outlet !== "Outlet1") {
                pm.expect(item.Inventory,
                    `Expected inventory value of ${item.Outlet} to be 0`).
                    to.
                    eql(0)
            } else {
                pm.expect(item.Inventory,
                    `Expected inventory value of ${item.Outlet} to be 12`).
                    to.
                    eql(12)
            }
        })
    });
    

    【讨论】:

    • 它就像一个魅力。谢谢!
    【解决方案2】:

    为什么你不能直接比较对象而不是单个字段?当您比较精确值时。

    let expected = [
        {
            "Outlet": "Outlet1",
            "Inventory": 12
        },
        {
            "Outlet": "Outlet2",
            "Inventory": 0
        },
        {
            "Outlet": "Outlet3",
            "Inventory": 3
        },
        {
            "Outlet": "Outlet4",
            "Inventory": 0
        }
    ]
    
    pm.expect(JSONdata).to.be.deep.eq(expected1, `Expected ${JSON.stringify(JSONdata,null,2)} to be equal to ${JSON.stringify(expected,null,2)}`)
    

    【讨论】:

      猜你喜欢
      • 2019-10-04
      • 2020-03-02
      • 2019-07-07
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      相关资源
      最近更新 更多