替代AMD装载机可以用于实习生的功能测试吗?

时间:2014-09-02 02:11:13

标签: requirejs amd intern

用于指定要使用的另一个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结合使用?

1 个答案:

答案 0 :(得分:2)

你是对的,使用默认加载器运行功能测试。功能测试只会驱动浏览器 - 它不会在与测试中的应用程序相同的环境中运行。

您可以在功能测试中同时使用AMD和CommonJS库。例如,您可以安装Dojo npm模块并将其添加到测试配置中的packages列表中以使用dojo/text(以及任何其他Dojo实用程序函数)。您还可以使用Intern附带的fs模块加载Node的dojo/node模块,例如:

define([ 'intern/dojo/node!fs', ... ], function (fs, ...) {
    ...
});