【问题标题】:Postman: How to check the data type of each value in a response邮递员:如何检查响应中每个值的数据类型
【发布时间】:2018-07-24 09:56:35
【问题描述】:

如何检查 API 响应中每个值的数据类型是否不是整数?

例如,如果我的 API 返回以下内容:

 "teamPermissions": [
    "Edit",
    "Administrator",
    "ReadOnly",
    etc
    ]

我需要 Postman 测试以确保在 teamPermission 数组中永远不会返回整数。

这是我开始但需要帮助的内容:

var jsonData = JSON.parse(responseBody);
tests["Team Permissions Do Not Contain Integers"] = typeof(jsonData.teamPermissions) !== "number"

这通过了,因为teamPermissions 是一个对象,但我如何检查该对象的每个值不是整数?

【问题讨论】:

    标签: javascript postman


    【解决方案1】:

    这应该会为您检查:

    pm.test('Not contain numbers', () => {
        var jsonData = pm.response.json()
        for (i = 0; i < jsonData.teamPermissions.length; i++) {
            pm.expect(jsonData.teamPermissions[i]).to.not.be.a('number')
        }
    })
    

    如果数字是数组的一部分,则检查将执行以下操作,我已注销类型,以便您查看它正在检查的内容。

    另一种选择是使用Lodash,它是 Postman 本机应用程序的内置模块。此代码将运行与上述相同的检查:

    pm.test('Not contain numbers', () => {
        _.each(pm.response.json().teamPermissions, (arrItem) => {
            pm.expect(arrItem).to.not.be.a('number')
        })
    })
    

    【讨论】:

    • 无论您在引号中输入什么,这都不会输出吗?即,用“blah”替换“number”。我只是得到,“不要成为废话”。它应该这样做吗?
    【解决方案2】:

    我假设你可以这样做:

    jsonData.forEach((a)=>{
    var boolVal=isNaN(a) ? true : false
    if(boolVal)
    {
        tests["Team Permissions Do Not Contain Integers"]=false; 
     }
    });
    

    仅供参考,而不是 isNaN(a) 你也可以做 Number.isInteger(a)

    【讨论】:

    • 你为什么不把你的支票放在测试里面? jsonData.forEach( value =&gt; tests['Team Permissions Contain Integers''] = Number.isInteger(value));。由于强制,您不需要使用三元运算符和 if 块。
    【解决方案3】:

    看起来teamPermissions 是一个数组。

    您可以使用Array.prototype.every() 来检查是否所有元素都通过了某些条件:

    var array1 = [1, 2, 3];
    var array2 = ["a", 9, 10];
    console.log(array1.every((e) => { return !isNaN(e) })) // True, all elements are numbers
    console.log(array2.every((e) => { return !isNaN(e) })) // False
    

    【讨论】:

      猜你喜欢
      • 2020-12-15
      • 2017-08-15
      • 1970-01-01
      • 2021-03-04
      • 2021-01-27
      • 2020-01-27
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      相关资源
      最近更新 更多