我在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);