我有一个包含对象的模块。我想只重新连接一些对象的参数。我们来说我的模块&module; js'看起来像这样:
var obj = {
param_A: 'valueA',
param_B: 'valueB',
param_C: 'valueC'
}
在测试文件中,我导入模块并使用重新连接。
var rewire = require('rewire');
var module = rewire('../module.js');
describe('Unit-Test', function () {
beforeEach(function () {
module.__set__({
'obj': { param_B: 'newValueB' }
});
});
...
});
现在我已经覆盖整个对象,参数A和C不再存在。如何保留它们?我想到的唯一一件事是这样的
module.__set__({
'obj': {
param_A: module.obj.param_A,
param_B: 'newValueB',
param_C: module.obj.param_C
}
}
但我觉得必须有更好的方法。
答案 0 :(得分:-1)
我可以建议你看一下require中的' with '功能。 github/jhnns/rewire
myModule.__with__({
port: 3000
})(function () {
// within this function port is 3000
});
// now port is the previous value again