1
相同的文件我有config/index.js
返回根据所设定的NODE_ENV环境变量不同的配置文件。如何要求摩卡测试
我试图写一个简单的测试,以确保正确的配置返回为每个环境,但我遇到了一个问题,只有第一个要求实际上是被调用,后续需要同样的文件被使用第一个要求的值。
我应该如何更改我的测试来解决此问题?
describe('config', function() {
it('should return dev config', function (done) {
process.env.NODE_ENV = 'development';
var config = require(__dirname + '/../../config'); // development config
console.log(config.plugins.ipFilter);
done();
});
it('should return prod config', function (done) {
process.env.NODE_ENV = 'production';
// development config from above.
// the require here doesn't actually get invoked
var config = require(__dirname + '/../../config');
console.log(config.plugins.ipFilter);
done();
});
});
这里是config/index.js
一个简化版本(这是很好的工作),我试图测试一下:
var Hoek = require('hoek');
var settings = {
'defaults': require('./settings/defaults'),
'production': require('./settings/production')
};
var env;
switch (process.env.NODE_ENV) {
case 'production': env = 'production'; break;
case 'development': env = 'development'; break;
default: env = 'defaults'; break;
}
var config = Hoek.applyToDefaults(settings['defaults'], settings[env]);
module.exports = config;
require.resolve为您提供文件的路径。在通过路径删除缓存之前,您仍然需要(已解决)。我建议为未来的读者添加。谢谢你的帮助。 – doremi