我想单元测试我构建的模块。 举个什么样子差不多.. MyModule的一个印象:Node.js我应该如何单元测试调用其他函数的函数
function MyModule(...) {
var self = this;
MyModule.init.call(self, ...);
}
util.inherits(MyModule, MySuperModule);
MyModule.init = function(...) {
...
};
MyModule.prototype.logic = function(..., done) {
calls fnA, fnB, fnC, fnD conditionally
done(...)
};
MyModule.prototype.fnA = function(...) {
...
};
MyModule.prototype.fnB = function(...) {
...
};
MyModule.prototype.fnC = function(...) {
...
};
MyModule.prototype.fnD = function(...) {
...
};
MySuperModule:
function MySuperModule(...) {
...
}
MySuperModule.prototype,fn = function(..., done) {
var self = this;
...
self.logic(..., function done(...) {
...
done(...)
});
}
现在MyModule.logic()永远不会被用户显式调用,它只是调用MySuperModule.fn()。 对于所有其他的MyModule函数也是如此,这些函数根据传递给委托链的给定参数有条件地调用。
我的问题如下:
- 我需要有涵盖所有可能出现的情况
- 我知道我需要测试功能的不同参数分别测试所有MyModule的功能或只是测试MySuperModule.fn() (如果我做我以前的问题是错误的,因为我根本不会真的测试MyModule函数),我将如何使用MySuperModule.fn(),因为它的done()回调是调用依赖于调用MyModule.logic()done()回调的参数,这又取决于提供给MySuperModule.fn()参数的参数。