Ruby on rails 3.1 Jasmine规范找不到CoffeeScript中定义的类

Ruby on rails 3.1 Jasmine规范找不到CoffeeScript中定义的类,ruby-on-rails-3.1,coffeescript,jasmine,Ruby On Rails 3.1,Coffeescript,Jasmine,我正在Rails 3.1后端上构建一个backbone.js应用程序。我正在使用CoffeeScript编写主干类,并使用Jasmine(通过Jasmine headless webkit)进行测试 给定以下(部分)树: 。。。我希望avia\u view\u spec.js.coffee了解avia.AviaView,它在avia\u view.js.coffee中定义 但是,通过运行bundle exec jasmine headless webkit,我得到了以下输出: Running J

我正在Rails 3.1后端上构建一个backbone.js应用程序。我正在使用CoffeeScript编写主干类,并使用Jasmine(通过Jasmine headless webkit)进行测试

给定以下(部分)树:

。。。我希望
avia\u view\u spec.js.coffee
了解
avia.AviaView
,它在
avia\u view.js.coffee
中定义

但是,通过运行
bundle exec jasmine headless webkit
,我得到了以下输出:

Running Jasmine specs...
F

Avia.AviaView render creates a new MatricesView . (/home/duncan/avia/spec/javascripts/views/avia_view_spec.js.coffee:10)
  ReferenceError: Can't find variable: Avia in /home/duncan/avia/spec/javascripts/views/avia_view_spec.js.coffee (line ~5)
  ReferenceError: Can't find variable: Avia in /home/duncan/avia/spec/javascripts/views/avia_view_spec.js.coffee (line ~10)
My
jasmine.yml
包含以下内容:

src_files:
  - public/javascripts/prototype.js
  - public/javascripts/effects.js
  - public/javascripts/controls.js
  - public/javascripts/dragdrop.js
  - public/javascripts/application.js
  - public/javascripts/**/*.js
我想我需要告诉Jasmine加载avia_view.js.coffee的内容,但我不完全确定如何加载。在
jasmine.yml
中的
src_文件
部分添加显式引用似乎没有什么区别


有人能告诉我我做错了什么吗?我怀疑它很简单…

如果没有看过您的大部分代码,我会怀疑它是因为CoffeeScript的函数包装()。你需要确保你想要使用的所有符号都被导出到你能找到它们的地方(这是一个彻底的讨论)


编辑:关于这个主题的另一篇长篇理论性但很好的文档。

尝试将其添加到您的
avia_view.js.coffee

(exports ? this).Avia = Avia 
有关详细说明,请参阅

或者尝试


我们遇到了同样的问题;我强烈建议

这是问题之一;我在一个未包含的.js文件中定义了我的Avia“名称空间”。谢谢:-)
(exports ? this).Avia = Avia 
window.Avia = Avia