如何使用Jasmine和requireJS模拟/访问dojox

时间:2018-01-09 10:43:17

标签: dojo requirejs karma-jasmine

我正在使用带有karma和jasmine的requireJS来测试Dojo代码。

正如我们所知,require会在每个文件中引入所有依赖项,这很好,但是当任何文件都有语言文件(例如dojox / date / buddhist.js)作为依赖项时,我会收到脚本错误。

语言文件的布局如下:

define([
  "..", 
  "dojo/_base/lang",
  "dojo/date", 
  "./buddhist/Date"
  ], function(
  dojox, 
  lang, 
  dd, 
  BDate
  ) { /* etc etc */

参考例如"dojo/_base/lang"这很容易映射到文件,但是,注意到dojox的映射是"..",它实际上返回到目录而不是单个文件。

这是我在浏览器的终端或控制台中遇到的错误:

  

错误:“dojox”的脚本错误,需要:dojox / date / buddhist,dojox / date / buddhist / locale,dojox / date / hebrew,dojox / date / hebrew / locale,dojox / date / islamic,dojox /日期/伊斯兰/区域设置   http://requirejs.org/docs/errors.html#scripterror

我已经尝试在我的test-main文件中定义dojox但是同样的错误。

所以我需要做的是模拟dojox,有没有解决方法呢?

1 个答案:

答案 0 :(得分:0)

我通过更改dojox日期文件来引用实际文件来修复此问题:

".."更改为"dojox/main"并映射到该文件。

我在实际的dojo文件中更改了这个,因为我在我的测试项目中使用它们的副本,不确定这是否可以在生产中使用但我认为它似乎dojo也在以后的版本中切换到了这个。 / p>