【问题标题】:Can alternative AMD loaders be used in functional testing with intern?可以在实习生的功能测试中使用替代 AMD 加载程序吗?
【发布时间】:2014-09-02 02:11:12
【问题描述】:

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

如果功能测试不支持替代 AMD 模块加载器(例如 requireJS),那么在功能测试模块中包含文件中的 json 的最佳方法是什么?

是否应该将节点的fs 库与JSON.parse 结合使用?

【问题讨论】:

    标签: requirejs amd intern


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多