【问题标题】:Is it possible to use dojo/text! in an Intern functional test?是否可以使用dojo/text!在实习生功能测试中?
【发布时间】:2013-11-18 14:11:32
【问题描述】:

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

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

这适用于使用的注释“testData”变量,但是当我尝试通过 dojo/text 提供相同的字符串时当前失败!声明。

代码:

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/text 的文件(但我已经尝试过完整路径和相对路径)或 Dojo 模块本身?

我只是想确认我正在尝试的事情是可能的,在我花更多时间之前......但显然任何解决方案或示例将不胜感激!

非常感谢, 戴夫

【问题讨论】:

    标签: dojo intern


    【解决方案1】:

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

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

    【讨论】:

    • 再次感谢您的帮助。我真的不介意使用 dojo/text 的替代品——这只是我熟悉的东西。我会试试 intern/dojo/node!fs 方法。
    【解决方案2】:

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

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

    好像 Sitepen 在此期间已包含此内容...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 2016-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多