0

我们的主干应用程序使用gon。当我们尝试运行我们的测试时,我们gon is undefined在浏览器的控制台中得到一个错误。我们的布局文件包含对 的调用include_gon,但该文件没有被 jasmine 加载,因此 jasmine 在我们的第一个包含 gon.js 的 javascript 文件中失败了。我们尝试创建一个帮助器来将gon变量分配给一个空的哈希(如夹具),但是在第一次调用 gon 之后调用了帮助器,因此没有解决我们的问题。

4

2 回答 2

0

秘诀是使用资产管道来定义我的文件的加载顺序。我从jasmine.yml

# path to parent directory of src_files
# relative path from Rails.root
# defaults to app/assets/javascripts
#src_dir: "app/assets/javascripts"

# list of file expressions to include as source files
# relative path from src_dir
#src_files:
#  - "application.{js.coffee,js,coffee}"

spec.js.coffee用这些行创建:

#= require application
#= require jasmine-jquery

现在我的 js 文件按顺序加载了,我可以开始了。

于 2014-04-02T14:24:57.467 回答
0

对我有用的是window.gon = {}在测试内部定义如下:

describe("A suite is just a function", function() {
  beforeEach(function() {
    window.gon = {}
    gon.test = "this"
  })
  it ("should find gon", function() {
    expect(gon.test).toBe("this")
  })
})
于 2018-07-27T05:13:42.710 回答