Reb*_*ury 6 ruby tdd ruby-on-rails coffeescript jasmine
我正在使用Ruby版本2.0.0-p195运行Rails 3.2.13.我正在使用Jasmine-Rails gem版本0.4.5并启用资产管道.我想在CoffeeScript中编写我的规范,但我无法弄清楚如何命名文件并配置jasmine.yml,以便正确地拾取和解析规范.
这是我的jasmine.yml文件的内容:
src_dir: "app/assets/javascripts"
src_files:
- "application.{js,coffee}"
spec_dir: spec/javascripts
helpers:
- "helpers/**/*.{js,coffee}"
spec_files:
- "**/*[Ss]pec.{js,coffee}"
Run Code Online (Sandbox Code Playgroud)
我试过命名文件my_spec.js.coffee.这不起作用.当然my_spec.js命名约定可以正常工作.我也试过搞乱jasmine.yml中的spec_files值而没有任何成功.
提前感谢那些在类似问题上遇到困难的人,想出来了,并且可以帮助我沿着编写稍微繁琐的规范的道路前进.
jasmine-rails gem完全支持Rails资产管道,这意味着您可以:
- 使用coffee_script或其他Javascript预编译器来获取源文件或测试文件
- 使用sprockets指令来控制依赖文件的包含/排除
- 利用资产管道搜索路径来包含来自各种来源/宝石的资产
如果您选择使用资产管道支持,那么很多
jasmine.yml
配置变得不必要,您可以依靠Rails资产管道来完成控制测试套件中包含哪些文件的艰苦工作.
# minimalist jasmine.yml configuration when leveraging asset pipeline
spec_files:
- "**/*[Ss]pec.{js,coffee}"
Run Code Online (Sandbox Code Playgroud)
这定义了spec文件的名称模式.也就是说,零个或多个字符,然后是Spec
或spec
,和一个js
或coffee
扩展名.
添加Jasmine-Rails路由配置config/routes.rb
.
mount JasmineRails::Engine => "/specs" if defined?(JasmineRails)
Run Code Online (Sandbox Code Playgroud)
现在你可以在spec/javascripts/my_spec.coffee中编写一个测试Foo的规范.
describe 'Foo', ->
it 'does something', ->
expect(1 + 1).toBe(2)
Run Code Online (Sandbox Code Playgroud)
你的RoR项目结构应该是这样的:
RailsApp/
|---app/
|---config/
| |---routes.rb
|---...
|---spec/
|---javascripts/
|---my_spec.coffee
|---support/
|---jasmine.yml
Run Code Online (Sandbox Code Playgroud)
您可以使用以下方法测试规格:
bundle exec rake spec:javascript
Run Code Online (Sandbox Code Playgroud)
或者您可以启动rails服务器并检查Jasmine-Rails(/specs
)的路径.
归档时间: |
|
查看次数: |
4700 次 |
最近记录: |