- 论坛徽章:
- 0
|
Rails3中使用Rspec进行行为驱动测试
环境:
ruby 1.9.3
rails 3.1.3
简介:
RSpec is a Behaviour-Driven Development tool for Ruby programmers. BDD is an approach to software development that combines Test-Driven Development, Domain Driven Design, and Acceptance Test-Driven Planning. RSpec helps you do the TDD part of that equation, focusing on the documentation and design aspects of TDD.
RSpec是ruby程序设计中行为驱动测试(BDD)的工具。(BDD)是一种结合测试驱动开发,领域驱动设计,验收测试的软件开发方法。rspec更侧重于测试驱动开发中文档和设计部分。
rails默认使用test/unit做为测试框架,那么如何使用Rspec呢?
1. 安装RSpec相关的Gem包
gem install rspec-rails
执行后,会自动安装相应的gem包:
Ruby代码- 1.rspec
- 2.rspec-core
- 3.rspec-expectations
- 4.rspec-mocks
- 5.rspec-rails
- rspec
- rspec-core
- rspec-expectations
- rspec-mocks
- rspec-rails
复制代码 2. 新建一个rails工程,打开Gemfile文件,在roup中增加如下代码,注意添加:development,这段代码告诉Bundler我们需要在Rails中安装rspec-rails来运行RSpec
Ruby代码- 1.group :test, :development do
- 2. # Pretty printed test output
- 3. gem 'rspec-rails', '2.7.0'
- 4. gem 'turn', '~> 0.8.3', :require => false
- 5.end
- group :test, :development do
- # Pretty printed test output
- gem 'rspec-rails', '2.7.0'
- gem 'turn', '~> 0.8.3', :require => false
- end
复制代码 3. 最后,运行RSpec的生成器
Ruby代码- 1.rails generate rspec:install
- rails generate rspec:install
复制代码 生成器创建了几个新文件,分别是:
•.rspec – 用于配置 rspec 命令行的配置文件,默认包含 – colour 来启用RSpec输出文字高亮。
•spec – 该目录用于存放所有模型变量,控制器,视图,和项目中其它的specs。
•spec/spec_helper.rb – 该文件会在每个spec执行时被调用。该文件设置了测试变量,并包含项目级别RSpec配置项,加载引用文件等等。
4.此时运行: rails generate 你就会看到 rspece:install 这个生成器, 这是因为RSpec已经被注册为Rails的测试框架,所以当你在rails工程中生成models,controllers等时,RSpec就会取代Test::Unit
如下:
Ruby代码- 1.<SPAN>F:\test_rspec>rails generate controller Pages contact
- 2. ...
- 3. invoke rspec
- 4. create spec/controllers/pages_controller_spec.rb
- 5. create spec/views/pages
- 6. create spec/views/pages/contact.html.erb_spec.rb
- 7. ....</SPAN>
- F:\test_rspec>rails generate controller Pages contact
- ...
- invoke rspec
- create spec/controllers/pages_controller_spec.rb
- create spec/views/pages
- create spec/views/pages/contact.html.erb_spec.rb
- ....
复制代码 参考资料:
http://lanvige.com/posts/how_to_rails_3_and_rspec_2/
https://www.relishapp.com/rspec
https://github.com/rspec/rspec-rails
|
|