我试图为一个超出我控制范围的旧JS文件/模块构建一些单元测试。
JS模块是使用以下模式构建的.
var myModule = {
myMethod:function() {
}
};然后,我试图构建一个DOH测试工具来测试这一点。我试过以下..。
require([
"doh/runner",
"../../myModules/myModule.js"
], function(doh) {
console.log(doh);
console.log(myModule);
});这份文件看上去很好,但我不能参考其中的任何内容。"console.log(myModule);“只是返回未定义的。
有人知道我如何在DOH测试工具中正确地包含一个外部的非dojo模块JS文件吗?
谢谢
发布于 2013-09-23 18:16:44
您需要在回调myModule语句的函数中声明require:
require([
"doh/runner",
"../../myModules/myModule"
], function(doh, myModule) { // <-- include myModule
console.log(doh);
console.log(myModule);
});只需确保myModule.js返回模块即可。
发布于 2013-09-24 04:23:50
除了不应该使用DOH (使用实习生)之外,没有理由不应该在那里看到myModule。您使用的是脚本地址,而不是模块ID,这是不正确的,您使用的是一个带有require调用的相对路径,这也是不正确的,但是如果这些都阻止加载程序查找和加载脚本,那么它应该会抛出一个您可以在控制台中看到的错误。唯一的另一种可能是,您已经设法在这个myModule脚本中构建了一个内置层,在这种情况下,整个脚本最终被包装在一个闭包中,因此使用var foo将不再定义全局变量foo。
https://stackoverflow.com/questions/18964183
复制相似问题