我正在Rails 3.1后端构建一个骨干。JS应用程序。我正在使用CoffeeScript来编写主链类,而茉莉(通过茉莉 - 消息来)进行测试。

给定以下(部分)树:

.
├── 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

思考 我需要告诉茉莉花加载内容 avia_view.js.coffee 但是我不确定如何。在 src_files 章节 jasmine.yml 似乎没有区别...

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

有帮助吗?

解决方案

没有看到您的大部分代码,我怀疑它是Coffeescript功能包装的BeaCuse(文档)。您需要确保将所有要使用的符号导出到可以在其中获得的地方(这里 是对此的彻底讨论)。

编辑: 这是 关于此主题的另一个漫长而理论但良好的文档。

其他提示

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

(exports ? this).Avia = Avia 

这个 详细说明。

或者尝试 这个;

window.Avia = Avia

我们遇到了同样的问题;我强烈推荐 茉莉香米

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top