我正在使用Postman来验证API测试中响应的数据类型。返回的值可以是整数、浮点数或空。我怎样才能用柴和一句话来做这件事呢?
以下是我在使用javascript和柴的Postman测试中的简化断言。
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我希望所有的断言都会过去。谢谢,我很感谢您的评论。
发布于 2019-04-16 20:20:16
所以,我想你有一个专门的方法,但我认为它不存在,所以我欺骗了一点。我没有使用一个预定义的状态,而是自己做了标记,并将其评估为true。
这里的主要问题是类型(Null)返回'object‘,我认为它不足以作为比较
let element=[23,null,12];
for(let e of element){
//one statement
pm.expect(e==null||typeof(e)=='number').to.be.true
}发布于 2019-04-17 05:15:10
由于null是JavaScript中的object类型,所以将测试用例编写为
pm.expect(typeof 23).to.be.oneOf(['number', 'object']);这可能是一种简单的方法,可以用于简单的检查。但是,我建议您使用第二种方法,即使用最快的。
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; 发布于 2021-08-02 10:32:54
您可以使用chai中的.statify方法:
expect(1).to.satisfy(function(num) {
return num == null || Number.isInteger(num);
});https://stackoverflow.com/questions/55715462
复制相似问题