打算以后使用rspec 就行测试开发,由于第一次在项目中使用,所以,记录再次,便于以后查询
本文的记录参考了开源软件 angle-nest 和 Ruby-China源码
- 安装gem
- group :development, :testdo
- gem 'cucumber-rails', :require => false
- gem 'database_cleaner'
- gem 'factory_girl'
- gem 'factory_girl_rails'
- gem 'rspec-rails'
- gem 'capybara'
- gem 'delorean'
- end
group :development, :test do gem 'cucumber-rails', :require => false gem 'database_cleaner' gem 'factory_girl' gem 'factory_girl_rails' gem 'rspec-rails' gem 'capybara' gem 'delorean' end
- install
- rails generate rspec:install
rails generate rspec:install
- 运行测试
- rake spec
rake spec
- 修改helper文件
- config.mock_with :rspec
- config.use_transactional_fixtures = false
- config.include Delorean
- DatabaseCleaner.strategy = :truncation
- config.before do
- DatabaseCleaner.clean
- end
config.mock_with :rspec config.use_transactional_fixtures = false config.include Delorean DatabaseCleaner.strategy = :truncation config.before do DatabaseCleaner.clean end
- 安装watchr
- gem 'watchr'
gem 'watchr'
- 新建.watchr文件
- def run_spec(file)
- unlessFile.exist?(file)
- puts "#{file} does not exist"
- return
- end
- puts "Running #{file}"
- system "bundle exec rspec #{file}"
- puts
- end
- watch("spec/.*/*_spec.rb") do |match|
- run_spec match[0]
- end
- watch("app/(.*/.*).rb") do |match|
- run_spec %{spec/#{match[1]}_spec.rb}
- end
def run_spec(file) unless File.exist?(file) puts "#{file} does not exist" return end puts "Running #{file}" system "bundle exec rspec #{file}" puts end watch("spec/.*/*_spec.rb") do |match| run_spec match[0] end watch("app/(.*/.*).rb") do |match| run_spec %{spec/#{match[1]}_spec.rb} end
解析- 一旦spec/目录下有以_spec.rb结尾的文件发生了改变,watchr便会自动运行run_spec 方法来对该文件进行测试。
- 一旦有app/目录下有.rb结尾的文件发生了改变,立即调用run_spec 方法来执行该文件所对应的spec测试文件。
- run_file 通过文件名来检查spec文件是否存在, 然后来运行该spec (调用 system)
一旦spec/目录下有以_spec.rb结尾的文件发生了改变,watchr便会自动运行run_spec 方法来对该文件进行测试。 一旦有app/目录下有.rb结尾的文件发生了改变,立即调用run_spec 方法来执行该文件所对应的spec测试文件。 run_file 通过文件名来检查spec文件是否存在, 然后来运行该spec (调用 system)
- 运行
- watchr .watchr
watchr .watchr
- 增加spark提升速度
- gem 'spork', '1.0.0rc3'
gem 'spork', '1.0.0rc3'
- 运行
- spork --bootstrap
spork --bootstrap
- 修改spec_helper.rb
第一,上传 rubygems,因为我们已经有bundler了
修改spec_helper.rb文件如下- require 'spork'
- #uncomment the following line to use spork with the debugger
- #require 'spork/ext/ruby-debug'
- Spork.prefork do
- ENV["RAILS_ENV"] ||= 'test'
- require File.expand_path("../../config/environment", __FILE__)
- require 'rspec/rails'
- require 'rspec/autorun'
- # Requires supporting ruby files with custom matchers and macros, etc,
- # in spec/support/ and its subdirectories.
- Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
- RSpec.configure do |config|
- config.mock_with :rspec
- config.use_transactional_fixtures = false
- config.include Delorean
- DatabaseCleaner.strategy = :truncation
- config.before do
- DatabaseCleaner.clean
- end
- end
- end
- Spork.each_run do
- # This code will be run each time you run your specs.
- end
require 'spork' #uncomment the following line to use spork with the debugger #require 'spork/ext/ruby-debug' Spork.prefork do ENV["RAILS_ENV"] ||= 'test' require File.expand_path("../../config/environment", __FILE__) require 'rspec/rails' require 'rspec/autorun' # Requires supporting ruby files with custom matchers and macros, etc, # in spec/support/ and its subdirectories. Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f} RSpec.configure do |config| config.mock_with :rspec config.use_transactional_fixtures = false config.include Delorean DatabaseCleaner.strategy = :truncation config.before do DatabaseCleaner.clean end end end Spork.each_run do # This code will be run each time you run your specs. end
- 修改.rspec文件,增加如下代码
- --drb
--drb
- 运行spork
- spork
spork
- 在运行 watchr .wtachr 速度加快了
- 清除test环境下的缓存,编辑
config/environments/test.rb
- config.cache_classes = false
相关推荐
### 使用RSpec 测试Rails 程序的知识点总结 #### 一、RSpec与Rails结合的基础概念 **RSpec**(RSpec is not a unit testing framework)是一种为Ruby编程语言设计的行为驱动开发(BDD)框架,而**Rails**是基于...
它可以与 RSpec 结合使用,利用 Gherkin 语法编写用户故事,并使用 RSpec 进行验证。 - 示例: ```gherkin Feature: Login feature Scenario: Log in as a registered user Given I am on the login page When...
《RSpec Book》是一本专注于Rspec的权威指南,它详细阐述了如何使用Rspec这个强大的测试框架进行行为驱动开发(BDD)。Rspec是Ruby编程语言中的一个测试库,它使得编写可读性强、表达力丰富的测试代码成为可能。这...
《RSpec测试:行为驱动开发与RSpec、Cucumber及其他工具》 RSpec是一种用于Ruby语言的单元测试框架,它提倡一种称为...对于任何使用Ruby进行软件开发的团队来说,掌握RSpec都是提升开发效率和项目质量的关键技能之一。
综上所述,RSpec 3.1中文版是一本针对Rails开发者,特别是希望学习或提高其RSpec使用技能的开发者的实践指南。它不仅涵盖了RSpec的安装与基础使用,还包括了在Rails应用中实现TDD的具体方法和技巧,以及如何有效地将...
1. **灵活的语法**:RSpec 允许使用自定义匹配器来描述期望的行为,这使得测试代码更加直观。 2. **易于理解**:RSpec 的输出非常人性化,即使是非技术人员也能轻松阅读并理解测试结果。 3. **支持多种环境**:RSpec...
Rspec是一种行为驱动开发(Behavior-Driven Development,简称BDD)工具,它在软件测试领域被广泛使用。其目的是通过描述软件行为来提高开发人员与非技术团队成员之间的沟通效率。Rspec允许开发者编写一个可读性很强...
在他们下载的chm始终打不开或有问题。 ... 使用Cucumber+Rspec玩转BDD(1)——用户注册 使用Cucumber+Rspec玩转BDD(2)——邮件激活 ...使用Cucumber+Rspec玩转BDD(3)——用户...使用Cucumber+Rspec玩转BDD(7)——测试重构
标题 "jruby-1.5.5+OperaWatir+RSpec" 暗示了这是一个关于使用 JRuby 1.5.5 版本、OperaWatir 和 RSpec 进行自动化测试的项目或者资源集合。现在,我们将深入探讨这三个关键组件以及它们在 IT 领域中的应用。 JRuby...
rspec_api_documentation, 从RSpec自动生成API文档 RSpec Doc为你的Rails API生成漂亮的。查看一个示例文件。更改请查看维基以了解最新的更改。安装将rspec_api_documentation添加到你的文件gem 'rspec_a
rspec-collection_matchers, 集合基数匹配器,从rspec期望中提取 RSpec::CollectionMatchers RSpec::CollectionMatchers 让你在一个例子中表达一个对象集合的预期结果。expect(account.shopping_cart).to have_
### RSpec Essentials: Key Insights and Learning Points **RSpec Essentials** is an essential guide for developers looking to enhance their skills in testing Ruby applications using the RSpec framework...
- **社区资源**:RSpec 拥有一个活跃的社区,提供了大量的文档、教程和示例代码,可以帮助开发者更快地掌握RSpec的使用方法。 - **官方文档**:RSpec 官方文档是学习RSpec的最佳起点,其中包含了详细的安装指南、...
RSpec是Ruby社区广泛使用的BDD框架,它提供了一种简洁、表达性强的方式来编写测试代码。在RSpec中,开发者可以使用自然语言描述测试用例,使得非技术人员也能理解测试的目的。RSpec支持模拟对象、期望断言和DSL...
##在 Rails 中快速设置 RSpec,使用 Capybara、Factory Girl、Database Cleaner、Shoulda-matchers 等... 在命令行中,运行rails new app_name -T (关闭默认测试单元) 将 Gems 添加到 gemfile,然后捆绑。 gem '...
rspec-dns, 使用RSpec轻松测试你的DNS rspec-dns rspec是一个rspec插件,用于方便的DNS测试。 它使用dnsruby而不是标准库来解析名称解析。安装如果你正在使用 bundler,请将此行添加到你的应用程序的Gemfile 中:gem
标题 "在Rails中使用RSpec生产CHM文档" 暗示了这个话题是关于如何在Ruby on Rails(简称Rails)框架中使用RSpec测试工具来创建帮助文档,特别是以CHM(Microsoft Compiled HTML Help)格式。CHM文件是一种常见的...
rspec-api-blueprint-formatter, 从RSpec测试自动生成API文档 ! RSpec APIBlueprint格式化程序从RSpec测试自动生成API文档 !像这样it 'retrievs the patients medications' do retrieve_medications