Thi*_*its 0 javascript mocha.js node.js
我正在编写一个规范,根据global.window的存在来测试javascript文件中的差异.有没有办法导入或需要两次特定文件?设置global.window之前和之后一次.
正在测试的文件看起来像这样:
let someObject = (windowExists => {
return windowExists ? 'abc' : '123';
})(typeof window !== 'undefined');
export default someObject;
Run Code Online (Sandbox Code Playgroud)
我希望使用这种模式,但看起来似乎并不可行,因为common.js和es6模块都只包含一次文件并且之后处理缓存版本.
这比大多数人意识到的要容易.所有需要的模块都存储在require.cache.您只需从缓存中删除该模块,然后要求它不再从缓存中拉出模块.缓存模块的关键是模块的完整路径,require.resolve如果您不想键入完整路径,可以使用该路径.
require('./myModule.js');
delete require.cache[require.resolve('./myModule.js')];
require('./myModule.js');
Run Code Online (Sandbox Code Playgroud)
不清除缓存:

清除缓存:
