我正在尝试将 Squire.js 作为 RequireJS 的依赖项加载器。使用完全正常的 Web 浏览器运行单元测试。我想用它store
来处理我的模拟。但无法阻止 Squire 加载实际模块。
mock
工作正常:
define(['lib/squire'], function (squire) {
var injector = new squire();
injector
.mock('modules/dependency', {
run: function () {
console.log("fake dependency run");
}
})
.require(['modules/module-under-test'], function (module) {
module.run();
});
});
控制台输出
module under test loaded module-under-test.js:2
module under test run module-under-test.js:5
fake module run module-test.js:8
但是当我store
这样使用时:
define(['lib/squire'], function (squire) {
var injector = new squire();
injector
.store('modules/dependency')
.require(['modules/module-under-test', 'mocks'], function (module, mocks) {
mocks.store["modules/dependency"] = {
run: function () {
console.log("fake dependency run");
}
};
module.run();
});
});
真正的使用并运行:
real dependency loaded dependency.js:2
module under test loaded module-under-test.js:2
module under test run module-under-test.js:5
real dependency run dependency.js:5
Squire 在文档的首页上说这是可以的。使用来自 Github 的最新版本的 Squire.js,以及来自 requirejs.org 的最新 RequireJS。我究竟做错了什么?