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

时间:2018-04-19 00:21:06

标签: javascript json postman

我正试图在Postman中进行一项检查:

  

count(product.id)= responseHeader(“per-page”)

默认“每页”为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 个答案:

答案 0 :(得分:0)

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

更改

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"));