我有一个用例,其中文件(例如 File.js )包含两个不同的构造函数,例如 A 和 B 。 我想为这个文件中的构造函数编写单元测试。
但我不想对 File.js 本身进行任何更改。我的目标是将File.js分解为 A.js 和 B.js ,但只有当我有足够的两个测试用例时才会安全> A 和 B 。
但与此同时,我想编写测试,假设 A 和 B 已经是两个不同的模块。所以,我应该能够编写以下代码。
define(['File-A', 'File-B'], function (A, B) {
//Write tests for A
//Write tests for B
})
为了达到这个目的,我在requirejs config中有以下内容
requirejs.config({
paths: {
'File-A': 'File',
'File-B': 'File'
},
shim: {
'File-A': {
exports: 'A'
},
'File-B': {
exports: 'B'
}
}
}
但是在对它进行r.js优化时会出现以下错误
以下模块共享相同的URL。这可能是一个 如果该URL只有一个匿名模块,则配置错误:
答案 0 :(得分:0)
这是我能得到的最接近的 Can we export multiple non-AMD functions from a module in requirejs?
requirejs.config({
shim: {
File: {
exports: 'A',
init: function () {
return {
A: A,
B: B
};
}
}
}
}
define(['File'], function (AandB) {
var A = AandB.A,
B = AandB.B;
//Write tests for A
//Write tests for B
})