首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CoffeeScript中定义的类,茉莉花规范找不到

在CoffeeScript中定义的类,茉莉花规范找不到
EN

Stack Overflow用户
提问于 2011-11-29 11:59:54
回答 2查看 3.9K关注 0票数 3

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

给定以下(部分)树:

代码语言:javascript
复制
.
├── 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获得了以下输出

代码语言:javascript
复制
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包含以下内容:

代码语言:javascript
复制
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中的显式引用似乎没有什么区别.

有人能告诉我我在这里做错了什么吗?我想这很简单..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-29 14:52:02

没有看过很多您的代码,我怀疑是因为CoffeeScript的函数包装(文档)的缘故。您需要确保您想要使用的所有符号都导出到您可以得到它们的地方(这里是对此的彻底讨论)。

编辑: 下面是,这是关于这个主题的另一个冗长而理论性很好的文档。

票数 5
EN

Stack Overflow用户

发布于 2012-03-16 11:11:16

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

代码语言:javascript
复制
(exports ? this).Avia = Avia 

有关详细说明,请参见

或者尝试

代码语言:javascript
复制
window.Avia = Avia

我们遇到了同样的问题;我强烈推荐JasmineRice

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8310329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档