【发布时间】:2016-09-18 18:29:48
【问题描述】:
我想对我构建的模块进行单元测试。 给人一种印象,它看起来很像.. 我的模块:
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(...) {
...
};
我的超级模块:
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() 参数的参数。
【问题讨论】:
标签: javascript node.js unit-testing testing