我想單元測試我構建的模塊。 舉個什麼樣子差不多.. 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()參數的參數。