`
adventurelw
  • 浏览: 3043 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

rails测试之RSpec环境搭建

 
阅读更多
bin/guard init spork  #这一步将产生一个Guardfile文件
bin/guard init rspec  #先运行spork,这样Guardfile中spork位于前面,否则会出错。

 

 

由于编程都是自学的,应用程度不高,很长一段时间都对测试方面避而不见。但看网上很多大牛都推崇“行为驱动开发”(Behavior-driven development),决定也尝试一把。

本文严格说算不上原创,因为基本都是从网上学习来的,思考的余地不大。感谢网络,让俺们也能搞定这种复杂而且先进的流程。

环境:ubunut12.04, ruby1.9.3-p327, rails3.2.11

第一步:创建测试App,使用默认的sqlite3

 

rails new test-app --skip-test-unit --skip-bundle

 这里忽略了默认的单元测试生成和bundle安装。

 

第二步:使用git进行版本管理,由于本项目后续可能会继续测试方面的学习。

 

git init
vim .gitignore
mv README.rdoc README.md
vim README.md //添加程序说明
git add .
git commit -m "The first commit"
git remote add origin https://github.com/adventurelw/test-app.git
git push -u origin master

 第三步:修改Gemfile添加所需要的gem。

 

https://github.com/adventurelw/test-app/blob/master/Gemfile

第四步:运行bundle

 

bundle install --binstubs

 --binstubs可以将rake命令放进bin目录,使得bundle exec rspec可以bin/rspec来运行。

 

第五步:运行rspec

 

rails g rspec:install

 这一步将生成spec目录和spec/spec_helper.rb,其中对rspec的配置主要在spec_helper.rb文件。

 

第六步:运行guard初始化spork和rspec

bin/guard init spork  #这一步将产生一个Guardfile文件
bin/guard init rspec  #先运行spork,这样Guardfile中spork位于前面,否则会出错。

 编辑Guard文件,添加:

require 'active_support/core_ext'

 由于不使用cucumber,所以将其相关环境删除。

https://github.com/adventurelw/test-app/blob/master/Guardfile

编辑spec/spec_helper.rb:

添加spork支持。

https://github.com/adventurelw/test-app/blob/master/spec/spec_helper.rb

第七步:运行

bin/guard将会自动启动spork并检测文件变化。

显示以下类似信息则测试环境已经安装成功。

Finished in 0.05937 seconds

0 examples, 0 failures

第八步:对factory_girl进行配置

spec/spec_helper.rb文件RSpec.configure do |config| .. end中添加:

config.include FactoryGirl::Syntax::Methods

 config/application.rb中:

config.generators do |g|
  g.fixture_replacement :factory_girl, :dir => 'spec/factories'
end 

 第九步:配置capybara

spec/spec_helper.rb文件require 'rspec/autorun'后:

require 'capybara/rspec'
require 'capybara/rails'

 当运行如下命令产生测试文件或者默认生成集成测试时:

rails g integration_test xxxx

 将会在spec目录下生成requests目录包含相关测试文件,这时需要添加如下代码到spec/spec_helper中,否则会出现visit这些方法未定义的情况,,features目录不需要这个,并且capybara2以上默认是在features测试,所以下面的代码并不推荐

RSpec.configure do |config|
  config.include Capybara::DSL, :example_group => {
    :file_path => "spec/requests"
  }
end
end

 第十步:配置simplecov

在spec/spec_helper.rb最上边添加:

require 'simplecov'
SimpleCov.start 'rails'

 第十一步:配置database_cleaner

在spec/spec_helper.rb中config.order="random"下添加:

config.before(:suite) do
  DatabaseCleaner.strategy = :transaction
  DatabaseCleaner.clean_with(:truncation)
end

config.before(:each) do
  DatabaseCleaner.start
end

config.after(:each) do
  DatabaseCleaner.clean
end

 

分享到:
评论

相关推荐

    搭建Rails测试环境2: Autotest和Spork的安装和配置

    至此,你已经成功地在Rails项目中搭建了Autotest和Spork的测试环境。当你修改代码后,测试会自动运行,Spork会提供更快的测试执行速度。这种高效的工作流程有助于提高开发效率,确保代码质量和项目的稳定性。 然而...

    Ruby on Rails环境搭建(基于WinXP & RadRails)

    在Windows XP系统上搭建Ruby on Rails开发环境,可以借助RadRails这款集成开发环境(IDE)进行辅助,下面将详细介绍这一过程。 首先,我们需要安装Ruby语言。Ruby是一种面向对象的、动态类型的编程语言,其语法简洁...

    rails指南 中文版

    7. **Testing**:Rails强调测试驱动开发,内置了RSpec、Minitest等测试框架,支持单元测试、集成测试和功能测试,确保代码质量。 8. **Asset Pipeline**:Rails的资产管道处理JavaScript、CSS和图像等静态资源,...

    rails-4.2.0-gems

    Rails 4.2.0支持RSpec、Minitest等多种测试框架,`rails_setup`可能包含如何设置和运行测试的说明。 9. 最后,部署到生产环境(如Heroku、AWS或自托管服务器)时,`rails_setup`可能包含部署策略和配置指南。 总的...

    Rails入门教程一(翻译).pdf

    总之,Rails入门教程一将涵盖Rails的基础知识,包括环境搭建、项目创建、MVC架构的理解、数据库操作、路由配置、控制器和视图的使用,以及测试工具的介绍。通过学习,初学者可以快速掌握Rails的基本技能,为进阶开发...

    Rails相关电子书汇总

    通过阅读"rubyonrails21-cn.pdf"这本书,读者可以学习如何搭建Rails环境,理解MVC架构,学习数据库设计,掌握路由规则,编写控制器和视图,进行测试,以及了解如何部署Rails应用。此外,书中可能还涵盖了Rails的安全...

    ruby on rails 学习资料

    Rails鼓励开发者进行测试,使用如RSpec和Capybara等工具编写测试,确保代码质量。 "ruby on rails 学习资料pdf"可能是综合性的学习指南,包含了从初学者到进阶者的各种主题,包括Rails的安装和配置、模型关系、控制...

    中文版的Ruby On Rails实践(PDF)

    在《Ruby On Rails实践》这本书中,读者可以期待学习到如何搭建Rails开发环境,创建第一个Rails应用,了解数据库设计和ActiveRecord的使用,掌握路由配置,深入理解控制器和视图的工作原理,以及如何进行测试和调试...

    ruby on rails最新版

    描述中的“这是本人精心收集的重要软件”表明这可能是一个包含Rails最新版及其相关工具和库的压缩包,可能是为了方便开发者快速搭建开发环境或者进行学习。 标签中的“on rails最新版”和“ruby”进一步强调了这个...

    Ruby on Rails入门权威经典

    接下来,书中会详细解释Rails的安装和配置过程,包括环境搭建、数据库配置以及Gemfile的使用,使读者能够快速创建并运行第一个Rails应用。同时,还会讲解Rails的核心组件,如路由、控制器、模型和视图,以及它们在...

    ruby on rails for dummies

    《Ruby on Rails for Dummies》这本书将引导读者从安装Ruby和Rails环境开始,逐步学习如何创建模型、视图和控制器(MVC架构),搭建数据库,使用路由系统,以及实现CRUD(Create, Read, Update, Delete)操作。...

    Head.First.Rails中文版.2011.12

    2. **Rails环境搭建**:学习如何安装Ruby、Rails以及相关的开发工具,如Git、SQLite、TextMate或Sublime Text等,创建第一个“Hello, World!”应用。 3. **Rails生成器**:Rails提供了许多命令行工具,如`rails ...

    Rails 学习资料

    8. **测试驱动开发(TDD)**:Rails鼓励TDD,了解RSpec或Minitest等测试框架,编写单元测试和集成测试。 9. **部署**:掌握如何将Rails应用部署到服务器,如Heroku或DigitalOcean。 10. **Rails最佳实践**:学习...

    Ruby on Rails入门经典-例子

    7. **测试(Testing)**:Rails鼓励TDD(测试驱动开发),提供了集成的测试框架如Test::Unit、RSpec和Cucumber,可以编写单元测试、集成测试和功能测试,确保代码质量。 8. **Gemfile与Bundler**:Gemfile是Ruby项目...

    rails-1.0.0

    9. **测试支持**:Rails内置了测试框架,如Test::Unit和RSpec,提供模型、控制器和功能测试的支持,鼓励TDD(测试驱动开发)和BDD(行为驱动开发)。 10. **社区和生态系统**:Rails拥有庞大的开发者社区,产生了...

Global site tag (gtag.js) - Google Analytics