为下面的javascript / nodejs提供依赖注入的惯用方法是什么?我希望能够用我自己的模拟替换util,cfg和call_hard,以便于单元测试:
/* file: platform.js */
var config = require('./config'),
ConfigParser = require('./ConfigParser'),
fs = require('fs'),
util = require('./util');
function add(dir){
var xml = util.getConfigFile(dir);
var cfg = new ConfigParser(xml);
return call_hard(xml, cfg);
}
function call_hard(xml, cfg){
...
}
module.exports.add = add;
/* end of file: platform.js */
1-为此代码编写单元测试的最佳方法是什么?我希望能够用我的模拟替换util,cfg和call_hard。
我已将以下代码添加到我的platform.js文件中。它允许我提供我的嘲笑(它对我来说不是惯用的):
/* file: platform.js */
...
module.exports.set_util = function(new_util) {
util = new_util;
};
module.exports.set_cfg= function(new_cfg) {
cfg = new_cfg;
};
module.exports.set_call_hard= function(new_call_hard) {
call_hard= new_call_hard;
};
/* end of file: platform.js */
2-或者我应该编写集成测试而不打扰?
3-有关如何在JavaScript中编写更好的代码/单元测试的任何其他建议吗?
4-我应该使用任何其他库或工具或透视图吗?欢迎提出任何建议。