在我的 Node 应用程序中,有一个这样的配置文件:
module.exports = {
BUILD_DIR: '/some.path',
OTHER_CONFIG: 42,
// ...
};
我也有一些测试做类似的事情
var appConfig = require('./path/to/appConfig');
appConfig.BUILD_DIR = 'tmp/some/path';
// and stuff done with appConfig
令我惊讶的是,这样做显然会修改模块的状态。我的下一个需要它的测试将BUILD_DIR
设置为“tmp/some/path”。我没有意识到模块有这种跨需求的状态。如何在测试中消除这种影响?另外,我怎样才能防止人们修改这个模块的状态?如果有人包含它,他们应该总是得到它定义的东西,而不是一些其他代码写给它的东西。