用于指定要使用的另一个AMD加载程序的useLoader
配置似乎不在功能测试模块中使用。
我想通过使用requireJS JSON插件(https://gist.github.com/millermedeiros/1255010)将JSON文件加载到我的功能测试套件中使用的javascript对象中,但是由于我假设插件正在寻找requireJS而无法正常工作具体结构:
TypeError: Cannot read property 'isBuild' of undefined
at Object.load </home/dev/public_html/gold_widgets_15644/web/assets/js/json.js:27:24>
at injectPlugin <node_modules/intern/node_modules/dojo/dojo.js:608:12>
at <node_modules/intern/node_modules/dojo/dojo.js:543:7>
at Array.forEach <native>
at forEach <node_modules/intern/node_modules/dojo/dojo.js:220:19>
at execModule <node_modules/intern/node_modules/dojo/dojo.js:535:5>
at <node_modules/intern/node_modules/dojo/dojo.js:582:7>
at guardCheckComplete <node_modules/intern/node_modules/dojo/dojo.js:566:4>
at checkComplete <node_modules/intern/node_modules/dojo/dojo.js:574:27>
at onLoadCallback <node_modules/intern/node_modules/dojo/dojo.js:656:7>
如果在功能测试中不支持诸如requireJS的替代AMD模块加载器,那么在功能测试模块中包含json的最佳方法是什么?
是否应该将节点的fs
库与JSON.parse
结合使用?
答案 0 :(得分:2)
你是对的,使用默认加载器运行功能测试。功能测试只会驱动浏览器 - 它不会在与测试中的应用程序相同的环境中运行。
您可以在功能测试中同时使用AMD和CommonJS库。例如,您可以安装Dojo npm模块并将其添加到测试配置中的packages列表中以使用dojo/text
(以及任何其他Dojo实用程序函数)。您还可以使用Intern附带的fs
模块加载Node的dojo/node
模块,例如:
define([ 'intern/dojo/node!fs', ... ], function (fs, ...) {
...
});