使用gon与jasmine-rails

时间:2014-03-20 21:46:32

标签: testing backbone.js jasmine jasmine-jquery

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

2 个答案:

答案 0 :(得分: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文件按顺序加载了,我很高兴。

答案 1 :(得分: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")
  })
})