Rails 3.0下配置cucumber和rspec测试框架

2020腾讯云双十一活动,全年最低!!!(领取3500元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1074

【阿里云】双十一活动,全年抄底价,限时3天!(老用户也有),
入口地址https://www.aliyun.com/1111/home

推荐:SpringMVC框架配置与测试

[SpringMVC框架 Spring的web框架围绕DispatcherServlet设计。 DispatcherServlet的作用是将请求分发到不同的处理器。 DispatcherServlet类似Struts2的中央处理器,SpringMV

最近开始做一个rails的项目,使用Cucumber 和 Rspec做BDD驱动开发。配置过程中发现很多细节容易出现问题,为了自己回头能记得,特此记录。

1. gems安装:以下是所有需要的gems

   
    $
    gem install cucumber
$ gem install cucumber-rails
$ gem install rspec
$ gem install rspec-rails
$ gem install database_cleaner
$ gem install gherkin
$ gem install capybara
$ gem install syntax

安装完毕以后,使用命令:gem list 查看已安装的gems,我的gems如下:

  
   abstract 
   (
   1.0
   .
   0
   )
   
actionmailer ( 3.0 . 6 )
actionpack ( 3.0 . 6 )
activemodel ( 3.0 . 6 )
activerecord ( 3.0 . 6 )
activeresource ( 3.0 . 6 )
activesupport ( 3.0 . 6 )
arel ( 2.0 . 9 )
aruba ( 0.3 . 6 )
Ascii85 ( 1.0 . 0 )
builder ( 2.1 . 2 )
bundler ( 1.0 . 12 )
capybara ( 0.4 . 1.2 )
celerity ( 0.8 . 9 )
childprocess ( 0.1 . 8 )
cucumber ( 0.10 . 2 )
cucumber-rails ( 0.4 . 1 )
culerity ( 0.2 . 15 )
database_cleaner ( 0.6 . 6 )
diff-lcs ( 1.1 . 2 )
erubis ( 2.6 . 6 )
ffi ( 1.0 . 7 )
gherkin ( 2.3 . 5 )
i18n ( 0.5 . 0 )
json ( 1.5 . 1 )
json_pure ( 1.5 . 1 )
mail ( 2.2 . 15 )
mime-types ( 1.16 )
minitest ( 2.1 . 0 , 1.6 . 0 )
nokogiri ( 1.4 . 4 )
pdf-reader ( 0.9 . 1 )
polyglot ( 0.3 . 1 )
prawn ( 0.11 . 1 )
rack ( 1.2 . 2 )
rack-mount ( 0.6 . 14 )
rack-test ( 0.5 . 7 )
rails ( 3.0 . 6 )
railties ( 3.0 . 6 )
rake ( 0.8 . 7 )
rdoc ( 3.5 . 3 , 2.5 . 8 )
rspec ( 2.5 . 0 )
rspec-core ( 2.5 . 1 )
rspec-expectations ( 2.5 . 0 )
rspec-mocks ( 2.5 . 0 )
rspec-rails ( 2.5 . 0 )
rubygems-update ( 1.7 . 2 )
rubyzip ( 0.9 . 4 )
selenium-webdriver ( 0.1 . 4 )
sqlite3 ( 1.3 . 3 )
syntax ( 1.0 . 0 )
term-ansicolor ( 1.0 . 5 )
thor ( 0.14 . 6 )
treetop ( 1.4 . 9 )
ttfunk ( 1.0 . 1 )
tzinfo ( 0.3 . 26 )
xpath ( 0.1 . 3 )

完成后创建项目:

  
   ~
   $
   rails new depot -T
~ $ cd depot

使用-T来去除rails自带的测试目录

推荐:搭建Rails测试环境: RSpec

[前言                 关于本篇文章介绍的安装步骤可以参考 《Rails Tutorial - by example》 (英文)的3.2节。         至于什么是RSpec, 这里有 ...]

然后打开项目目录下的Gemfile,为其添加测试所需的gems:

  
   group 
   :development
   ,
    
   :test
    
   do
   
gem 'cucumber' , " ~> 0.10.2 "
gem 'rspec' , " ~> 2.4 "
gem 'rspec-rails' , '~ > 2.5 '
gem 'cucumber-rails' , '~ > 0.4 . 1 '
gem 'capybara' , '~ > 0.4 . 1.2 '
gem 'database_cleaner' , '~ > 0.6 . 6 '
end

 保存,然后在bash里对项目安装cucumber和rspec:

  
   depot$rails generate rspec
   :install
   
depot$rails generate cucumber :install

配置完成以后项目目录应有如下结构:

  
   depot
|-app /
|-config /
|-config . ru
|-db /
|-doc /
|-features /
|-Gemfile
|-Gemfile . lock
|-lib /
|-log /
|-public /
|-Rakefile
|-README
|-script /
|-spec /
|-tmp /
|-vendor /

根据BDD的原则,从feature开始开发,编写第一个.feature 文件:

  
   ##
    features
   /
   order
   .
   feature
Feature: Order
create new orders
Scenario :customer reads terms
Given I am on customer terms page
When I press " Create new order " button
Then I should be on new order page

保存后:

  
   depot
   $
   cucumber features
  
  
   depot$rake spec
  

cucumber与spec应返回测试结果。至此cucumber和rspec配置完成。

需要注意的地方:

  • 需注释掉features/step_definitions 目录下的web_steps.rb,此文件为模板文件,仅供编写时参考
  • rake db:migrate 后还需 rake db:test:prepare
  • 如配置正常,使用rails generate 生成时也会生成 rspec测试代码,放置于 spec目录下
  • 测试所需的路径在 /features/support/paths.rb中编辑

推荐:RSpec测试Rails程序快速上手

[1,安装 gem install rspec ruby script/plugin install svn://rubyforge.org/var/svn/rspec/tags/CURRENT/rspec ruby script/plugin install svn://rubyforge.org/va

相关推荐