soe*_*ace 21 javascript unit-testing mocha.js node.js chai
据http://chaijs.com/api/bdd/#a,a/ an可用于检查一个变量的类型.
.一种)
@param{ String } type
@param{ String } message _optional_的
a和an断言是可以用来作为语言链或断言值的类型的别名.
但是,我无法检查变量是否为整数.给出的例子,例如expect('1337').to.be.a('string');为我工作,但以下不是:
expect(42).to.be.an('integer');
expect(42).to.be.an('Integer');
expect(42).to.be.an('int');
expect(42).to.be.an('Int');
Run Code Online (Sandbox Code Playgroud)
运行mocha时,所有这些都给我以下错误:
Uncaught AssertionError: expected 42 to be an integer
Run Code Online (Sandbox Code Playgroud)
如何用chai测试变量是否为整数?
tle*_*leb 32
有点晚了,但对于来自搜索引擎的人来说,这是另一个解决方案:
var expect = require('chai').expect
expect(foo).to.be.a('number')
expect(foo % 1).to.equal(0)
Run Code Online (Sandbox Code Playgroud)
由于诸如true % 1 === 0或之类的事情,需要进行号码检查null % 1 === 0.
小智 10
这也是可能的(至少在节点上):
expect(42).to.satisfy(Number.isInteger);
Run Code Online (Sandbox Code Playgroud)
这是一个更高级的例子:
expect({NUM: 1}).to.have.property('NUM').which.is.a('number').above(0).and.satisfy(Number.isInteger);
Run Code Online (Sandbox Code Playgroud)
我感受到你的痛苦,这就是我想出的:
var assert = require('chai').assert;
describe('Something', function() {
it('should be an integer', function() {
var result = iShouldReturnInt();
assert.isNumber(result);
var isInt = result % 1 === 0;
assert(isInt, 'not an integer:' + result);
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12433 次 |
| 最近记录: |