是否可以使用dojo / text!在实习生功能测试中?

时间:2013-11-18 14:11:32

标签: dojo intern

是否可以使用" dojo / text!"在实习生功能测试?

我可以将我的测试页面设置为JSON字符串,但理想情况下,我希望将文件中的字符串外部化以便于编辑。我现在刚刚开始使用实习生,所以我只是在试验可能的内容,但这是我的测试代码的开始。)

这适用于评论" testData"变量使用,但当我尝试通过dojo / text提供相同的String时,当前失败了!言。

代码:

define([
    'intern!object',
    'intern/chai!assert',
    'dojo/text!./firstTestPageConfig.json',
    'require'
], function (registerSuite, assert, PageConfig, require) {
    registerSuite({
        name: 'firstTest',

        'greeting form': function () {

            var testData = PageConfig;
            // var testData = '{"widgets":[{"name":"alfresco/menus/AlfMenuBar","config":{"widgets":[{"name":"alfresco/menus/AlfMenuBarPopup","config":{"id":"DD1","label":"Drop-Down","iconClass":"alf-configure-icon","widgets":[{"name":"alfresco/menus/AlfMenuGroup","config":{"label":"Group 1","widgets":[{"name":"alfresco/menus/AlfMenuItem","config":{"label":"Item 1","iconClass":"alf-user-icon"}},{"name":"alfresco/menus/AlfMenuItem","config":{"label":"Item 2","iconClass":"alf-password-icon"}}]}},{"name":"alfresco/menus/AlfMenuGroup","config":{"label":"Group 2","widgets":[{"name":"alfresco/menus/AlfMenuItem","config":{"label":"Item 3","iconClass":"alf-help-icon"}}]}}]}}]}}]}';
            var testPage = 'http://localhost:8081/share/page/tp/ws/unittest?testdata=';

            return this.remote
                .get(testPage + testData)
                .waitForElementByCssSelector('.alfresco-core-Page.allWidgetsProcessed', 5000)
                .elementById('DD1')
                    .clickElement()
                    .end()

       }
   });
});

我得到的错误是:

/home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/dojo.js:742
                throw new Error('Failed to load module ' + module.mid + ' from ' + url + 
                          ^
Error: Failed to load module dojo/text from /home/dave/ScratchPad/ShareInternTests/dojo/text.js (parent: dojo/text!17!*)
at /home/dave/ScratchPad/ShareInternTests/node_modules/intern/node_modules/dojo/dojo.js:742:12
at fs.js:207:20
at Object.oncomplete (fs.js:107:15)

我尝试过使用loader / package / map配置但没有任何成功。从错误消息中(至少对我来说)不清楚它是否无法找到我传递给道场/文本的文件(但我也尝试过完整版)作为相对路径)或Dojo模块本身?

我想在我花费更多时间之前确认我尝试的是可能的......但显然任何解决方案或示例都会非常感激!!

非常感谢, 戴夫

2 个答案:

答案 0 :(得分:0)

针对您的特定错误:如果要使用Dojo,则需要为自己的项目安装Dojo。您正在尝试加载不存在的模块。您也可以通过从intern/dojo加载模块来尝试使用Intern附带的副本,但如果您不理解加载此内部库的潜在警告,则不建议这样做。

要在功能测试中使用dojo/text,通常:除非您使用Geezer分支或显式使用Dojo 1加载器,否则目前无法实现此功能,因为该模块依赖于仅由Dojo 1公开的功能在Node.js中运行时的加载程序一个完全通用的不同文本加载器模块可以工作,或者您可以加载intern/dojo/node!fs并自己加载文本。这将在未来解决。

答案 1 :(得分:0)

我刚遇到同样的问题,对我来说这很有效:

define([
     "dojo/_base/declare",
     "intern/dojo/text!/[PathToText]"
], function (declare, base) {

似乎Sitepen在此期间已经包含了这个......