ruby-on-rails-3.1 - Jasmine 规范未找到在 CoffeeScript 中定义的类

标签 ruby-on-rails-3.1 coffeescript jasmine

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

给定以下(部分)树:

.
├── app
│   ├── assets
│   │   ├── javascripts
│   │   │   └── views
│   │   │       ├── avia_view.js.coffee
├── spec
│   ├── javascripts
│   │   └── views
│   │       └── avia_view_spec.js.coffee

...我希望 avia_view_spec.js.coffee 了解 Avia.AviaView,它在 avia_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)

我的 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.ymlsrc_files 部分中添加显式引用似乎没有什么不同...

有人可以告诉我我在这里做错了什么吗?我怀疑这很简单......

最佳答案

没有看过你的大部分代码,我怀疑这是因为 CoffeeScript 的函数包装 (docs)。您需要确保将要使用的所有符号导出到您可以获取它们的位置(here 对此进行了深入讨论)。

编辑: here's关于这个主题的另一个冗长的理论但很好的文档。

关于ruby-on-rails-3.1 - Jasmine 规范未找到在 CoffeeScript 中定义的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8310329/

相关文章:

javascript - 类型错误 : 'undefined' is not a function (evaluating '_class.apply(this, arguments)' )

javascript - Node Redis 命令返回值 : Hubot and Coffeescript

javascript - 使用 toBeDefined 的 karma 测试 Controller 失败

javascript - Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试

ruby-on-rails-3.1 - 用于 Clearfix 的 Sass/SCSS Mixin - 最佳方法?

ruby-on-rails - localhost 应用程序的公共(public) URL,用于 Facebook

javascript - 如何将 Javascript/Coffeescript 整数数组传递到我的 Rails 应用程序?

javascript - Jasmine 测试总是通过

ruby-on-rails - 在 Rails 3.1 中禁用特定 Controller 操作的日志记录

ruby-on-rails - Assets 管道找不到 JS 文件