我的项目有外部依赖,所以我配置了webpack:
externals:{
'd3':'d3',
'another-external-dep': 'another-external-dep'
}
然后在代码中我需要这样的依赖:
var someProp = require('another-external-dep').someProp
。
一切都很好,直到我整合业力。
因此,运行测试时的业力无法清楚地找到模块another-external-dep
,因为它是外部依赖,并且我没有包含在文件列表中的karma配置中。
如何模拟another-external-dep
以便require('another-external-dep')
返回模拟?还有我可以在配置或模拟中指定这个模拟的地方?
答案 0 :(得分:8)
您可以在业力测试期间通过在files
中的karma.config.js
数组中包含依赖项来链接到外部依赖项。
module.exports = function karmaConfig(config) {
config.set({
...
files: [
'path/to/external/jquery.js',
'tests.webpack.js',
],
webpack: {
externals: {
'jquery': 'jQuery',
},
},
...
});
};
这使得依赖关系在全局上下文中可用,然后您可以从webpack文件中引用它们,复制您的开发上下文。