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