我正在Rails 3.1后端上构建一个backbone.js应用程序。我使用CoffeeScript编写主干类,使用Jasmine (通过茉莉花无头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我想我需要告诉茉莉花加载avia_view.js.coffee的内容,但我不完全确定如何加载。在src_files部分添加jasmine.yml中的显式引用似乎没有什么区别.
有人能告诉我我在这里做错了什么吗?我想这很简单..。
发布于 2011-11-29 14:52:02
没有看过很多您的代码,我怀疑是因为CoffeeScript的函数包装(文档)的缘故。您需要确保您想要使用的所有符号都导出到您可以得到它们的地方(这里是对此的彻底讨论)。
编辑: 下面是,这是关于这个主题的另一个冗长而理论性很好的文档。
发布于 2012-03-16 11:11:16
尝试将其添加到avia_view.js.coffee中
(exports ? this).Avia = Avia 有关详细说明,请参见这。
或者尝试这;
window.Avia = Avia我们遇到了同样的问题;我强烈推荐JasmineRice
https://stackoverflow.com/questions/8310329
复制相似问题