Guarda com Spork para RSpec, Pepino e Teste :: Unidade
Pode ser um pouco chato se você quiser usar guarda e garfo, especialmente pela primeira vez. Existem muitas joias diferentes disponíveis e nem todas funcionam com todas as configurações.
Nós usamos isso e funciona sem problemas para nós. Se você usa o Mongoid, consulte as instruções extras no final.
Joias
group :development, :test do
gem 'guard-rspec'
gem 'guard-livereload'
gem 'spork-rails', github: 'sporkrb/spork-rails' # rubygems version not rails 4 compatible
gem 'guard-spork'
gem 'childprocess'
end
group :test do
gem 'rspec-rails'
gem 'selenium-webdriver', '2.0.0'
gem 'capybara', '2.1.0'
gem 'factory_girl_rails'
gem 'cucumber', '1.2.5' # Spork not supported as of Cucumber 1.3.0, need to use 1.2.5
gem 'cucumber-rails', :require => false
gem 'database_cleaner'
end
Instruções de instalação
$ bundle update
$ bundle install
$ rails generate rspec:install
$ guard init rspec
Modificar ./Guardfile
guard 'rspec', after_all_pass: false, cli: '--drb' do
...
Configurar spork
$ bundle spork --bootstrap
Configure o Spork em /spec/spec_helper.rb
Spork.prefork do
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
end
Configuração de proteção com spork
$ guard init spork
Instale Pepino
$ rails generate cucumber:install --spork
Mongóide
Para uso com mongoid, modifique /spec/spec_helper.rb.
Remova essas linhas:
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)
..
config.fixture_path = "#{::Rails.root}/spec/fixtures"
..
config.use_transactional_fixtures = true
E adicione a /spec/spec_helper.rb, abaixo de Rspec.configure
config.before(:suite) do
DatabaseCleaner[:mongoid].strategy = :truncation
end
config.before(:each) do
DatabaseCleaner[:mongoid].start
end
config.after(:each) do
DatabaseCleaner[:mongoid].clean
end