代码之家  ›  专栏  ›  技术社区  ›  mitch-NZ

如何将属性的实例/计数与每页页眉值进行比较

  •  0
  • mitch-NZ  · 技术社区  · 6 年前

    我正在尝试在Postman中运行一个测试,该测试将检查:

    count(product.id)=响应负责人(“每页”)

    默认“每页”为30。 我的{/product}端点的架构如下所示:

    {
        id (number, optional),
        name (string, optional),
        product_type (string, optional) = ['day', 'week', 'month'],
        supply_commencement_date (string, optional),
        supply_end_date (string, optional),
        delivery_period (string, optional),
        bid_sweep (number, optional),
        offer_sweep (number, optional),
        bid_qty (number, optional),
        best_bid_price (number, optional),
        offer_qty (number, optional),
        best_offer_price (number, optional),
        last_settle_price (number, optional)
    }
    

    在尝试了一些变体之后,我想我终于完成了90%的脚本。。。

    pm.test("product id count matches ppg 00", function () {
        var ppg = pm.response.headers.get("per-page");
        var count = pm.response.json().map(product => product.id);
        pm.expect(ppg).to.eql(count.length);
    });
    

    但是,这会返回 AssertionError:预期“30”深度等于30 我猜这意味着它正在以字符串形式读取标题值,因此与我的id计数不匹配。

    我希望有人可以:
    *验证我的想法,如果我是对的,请建议我如何将“每页”转换为整数;或
    *提供更好的方法来实现预期的结果。

    提前感谢!

    注意:我也尝试过使用。。。

    pm.expect(ppg === count.length);
    

    这说明它是成功的,但是。。。

    pm.expect(ppg > count.length);
    

    所以我对这些片段不太相信:)

    1 回复  |  直到 6 年前
        1
  •  0
  •   Randy Casburn    6 年前

    以下选项之一将提供整数而不是字符串。请记住,此代码不会提前进行类型验证,因此不会捕获不生成可解析字符串的边缘情况。

    改变

    var ppg = pm.response.headers.get("per-page");
    

    var ppg = +pm.response.headers.get("per-page");
    

    var ppg = parseInt(pm.response.headers.get("per-page"));