【发布时间】:2016-08-29 15:27:23
【问题描述】:
我有一个包含对象的模块。我只想重新连接对象的一些参数。假设我的模块“module.js”如下所示:
var obj = {
param_A: 'valueA',
param_B: 'valueB',
param_C: 'valueC'
}
在测试文件中,我导入模块并使用 rewire。
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
}
}
但我觉得一定有更好的方法。
【问题讨论】:
-
查看警告下关于点符号的评论:github.com/jhnns/rewire#caveats。不确定您的
obj变量到底代表什么(以及您简化了多少示例),但这可能是仅重新连接obj.param_B的方法。
标签: javascript node.js unit-testing mocha.js