2012-03-31 9 views
11

Estoy usando Ruby on Rails 3.2.2 y rspec-rails-2.8.1. Para hacer mis archivos de especificaciones DRY (No repita) y sembrar la base de datos test me gustaría ejecutar un gancho before(:each) para todos esos archivos de especificaciones. Es decir, en todos mis archivos de especificaciones Tengo el siguiente código:¿Es posible agregar "en algún lugar" un gancho `before (: each)` para que todo el archivo de especificación pueda ejecutarlo?

describe 'test description' do 
    before(:each) do 
    load "#{Rails.root}/db/seeds.rb" 
    end 

    ... 
end 

¿Es posible añadir "en algún lugar" que before(:each) gancho para que todos los archivos de especificaciones pueden ejecutarlo?¿Qué le aconseja?

Respuesta

24

En el spec_helper.rb:

RSpec.configure do |config| 

    #your other config 

    config.before(:each) do 
    #your code here 
    end 
end 

Hay mucho de configuración disponibles. Por ejemplo: config.before(:each, :type => [:routing, :controller, :request])

Puede incluso crear sus propias etiquetas y código asociado a ella:

config.around :each, unobstrusive: true do |example| 
    Capybara.current_driver = :rack_test 
    example.run 
    Capybara.current_driver = :selenium 
end 
3

Puede añadir antes/después de ganchos en su bloque Rspec.configure, por lo general en su spec_helper:

RSpec.configure do |config| 
    config.before(:each) do 
    ... 
    end 
end 
+0

estuvieron de acuerdo :) 1 a continuación, – apneadiving

Cuestiones relacionadas