Skip to content
On this page

should断言库

node 内置的断言库 assert ,功能比较弱,不太好用,推荐使用 should ,详细api可以看 should.js

should 的断言方法注入到 Object.prototype 中,所以断言的风格更符合用户思维习惯,也支持链式调用,跟 jQuery 有点像:

javascript
var should = require("should");
    describe('Should test', function() {
        it('number', function() {
            (123).should.be.a.Number;
        });
        it('object property', function() {
            var obj = {name:'minghe',email:"[email protected]"};
            obj.should.have.property('name','minghe');
            obj.should.have.property('email');
        });
    });

(123).should.be.a.Number 判断 123 是否是一个数字,适用于其他类型的判断。

obj.should.have.property('name','minghe') obj 对象是否包含属性 name ,且 name = 'minghe' 。

常用的 api

使用 ok 判断值是否为 true:

javascript
it('ok',function(){
        (true).should.be.ok;
    })

使用 equal 判断一个值是否符合预期:

javascript
it('equal',function(){
        'abc'.should.equal('abc');
    });

使用 not 取反:

javascript
it('not equal',function(){
        'abc'.should.not.equal('ddd');
    });

判断值是否存在:

javascript
it('exist',function(){
        var result = {};
        should.exist(result);
    })

更多的 api 请看 文档