Node.js单元测试(2013年)

我在StackOverflow中看到,两年前Expresso,Vows和Mocha是node.js中单元测试的不错选择,但现在呢?我还没有找到最近的问题. 最佳答案 Mocha是最流行的单元测试框架,但我不太喜欢它,因为error参数应该是一个Error对象,例如你不能传递一个错误数组. Tap和should.js也很不错.

如果您不需要这些框架的所有功能,您可以使用内置的断言模块构建自己的功能.没有依赖关系,没有臃肿的代码,只需几行,很容易.

var tests = {
    "description 1": function (done){
        testSomethingAsync (function (error){
            assert.ifError (error);

            //assert other things

            done ();
        });
    },
    "description 2": function (){
        var res = testSomethingSync ();
        //assert other things
    }
};

var keys = Object.keys (tests);
var keysLength = keys.length;

(function again (i){
    if (i<keysLength){
        var fn = tests[keys[i]];
        if (fn.length){
            fn (function (){
                again (i + 1);
            });
        }else{
            fn ();
            again (i + 1);
        }
    }
})(0);
点赞