使用DOH测试自定义模块

时间:2013-09-23 16:20:50

标签: javascript dojo doh

我正在尝试为一个不受我控制的旧JS文件/模块构建一些单元测试。

JS模块使用以下模式构建......

var myModule = {
    myMethod:function() {
    }
};

然后我尝试构建一个DOH测试工具来测试它。我试过以下......

require([
    "doh/runner",
    "../../myModules/myModule.js"
    ], function(doh) {
        console.log(doh);
        console.log(myModule);
    });

这个文件似乎很好,但我不能在其中引用任何内容。 “的console.log(Mymodule中);”只返回undefined。

任何人都知道如何在DOH测试工具中正确包含外部非dojo模块JS文件?

由于

2 个答案:

答案 0 :(得分:1)

除了你不应该使用DOH,因为它已被弃用(使用Intern),你没有理由不在那里看到myModule。您正在使用脚本地址而不是模块ID,这是不正确的,并且您正在使用require调用的相对路径,这也是不对的,但是如果这些事情中的任何一个阻止了加载器从查找和加载您尝试加载它的脚本应该抛出您可以在控制台中看到的错误。唯一的另一种可能性是你以某种方式设法在这个myModule脚本中构建一个构建层,在这种情况下,整个脚本最终包含在一个闭包中,因此使用var foo将不再定义全局变量foo

答案 1 :(得分:0)

您需要在函数回调中声明myModulerequire语句:

require([
    "doh/runner",
    "../../myModules/myModule"
], function(doh, myModule) { // <-- include myModule
    console.log(doh);
    console.log(myModule);
});

请确保myModule.js返回您的模块。