是否可以使用" 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模块本身?
我想在我花费更多时间之前确认我尝试的是可能的......但显然任何解决方案或示例都会非常感激!!
非常感谢, 戴夫
答案 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在此期间已经包含了这个......