4

两年前我在 StackOverflow 中看到 Expresso、Vows 和 Mocha 是在 node.js 中进行单元测试的不错选择,但现在呢?我还没有找到更多最近的问题。

4

1 回答 1

2

Mocha 是最流行的单元测试框架,但我不太喜欢它,因为错误参数应该是一个错误对象,例如你不能传递错误数组。Tap 和 should.js 也不错。

如果您不需要这些框架的所有功能,您可以使用内置assert模块构建自己的功能。没有依赖,没有臃肿的代码,只需几行,简单。

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);
于 2013-08-12T11:10:23.860 回答