首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在柴和邮差中测试数字和空的数据类型?

如何在柴和邮差中测试数字和空的数据类型?
EN

Stack Overflow用户
提问于 2019-04-16 19:34:27
回答 3查看 1.9K关注 0票数 1

我正在使用Postman来验证API测试中响应的数据类型。返回的值可以是整数、浮点数或空。我怎样才能用柴和一句话来做这件事呢?

以下是我在使用javascript和柴的Postman测试中的简化断言。

代码语言:javascript
复制
    pm.expect(23).to.be.a('number'); // PASS
    pm.expect(2.3).to.be.a('number'); // PASS
    pm.expect(23).to.be.oneOf(['number', null]); // FAIL
    pm.expect(2.3).to.be.oneOf(['number', null]); // FAIL

我希望所有的断言都会过去。谢谢,我很感谢您的评论。

EN

回答 3

Stack Overflow用户

发布于 2019-04-16 20:20:16

所以,我想你有一个专门的方法,但我认为它不存在,所以我欺骗了一点。我没有使用一个预定义的状态,而是自己做了标记,并将其评估为true。

这里的主要问题是类型(Null)返回'object‘,我认为它不足以作为比较

代码语言:javascript
复制
let element=[23,null,12];
  for(let e of element){

  //one statement
  pm.expect(e==null||typeof(e)=='number').to.be.true


  }
票数 1
EN

Stack Overflow用户

发布于 2019-04-17 05:15:10

由于null是JavaScript中的object类型,所以将测试用例编写为

代码语言:javascript
复制
pm.expect(typeof 23).to.be.oneOf(['number', 'object']);

这可能是一种简单的方法,可以用于简单的检查。但是,我建议您使用第二种方法,即使用最快的。

代码语言:javascript
复制
var Ajv = require('ajv'),
ajv = new Ajv({logger: console}),
schema = {
    "properties": {
        "myNumber": {
            "type": ["number","null"]
        }
    }
};

pm.expect(ajv.validate(schema, {myNumber: 23})).to.be.true; 
票数 1
EN

Stack Overflow用户

发布于 2021-08-02 10:32:54

您可以使用chai中的.statify方法:

代码语言:javascript
复制
expect(1).to.satisfy(function(num) {
  return num == null || Number.isInteger(num);
});

来源

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55715462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档