backbone.js 将gon与jasmine-rails配合使用

7d7tgy0s  于 2022-11-10  发布在  Go
关注(0)|答案(2)|浏览(161)

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

9ceoxa92

9ceoxa921#

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


# 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文件得到加载的顺序,我很好去。

pvabu6sv

pvabu6sv2#

对我有效的方法是在测试中定义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")
  })
})

相关问题