2010-10-24 10 views
9

Tengo un esquema de escenario con múltiples escenarios. Me gustaría que mi hook Before se ejecute solo una vez para que pueda arrancar los objetos de ActiveRecord que necesito ejecutar en todos los escenarios. El problema es si usoPepino: antes de que el gancho se ejecute solo una vez para todos los escenarios

Before do 
    # my code here 
end 

Esto se ejecutará antes de cada escenario. ¿Hay alguna forma de ejecutarlo una vez para todo el Contorno?

Respuesta

3

Creo que si sólo tiene que crear los objetos de un archivo en características/apoyo que se persistió:

ImportantThing.create(:name => "USEFUL THING") 

Esto se debe a que antes de cada escenario de pepino se iniciará una transacción de base de datos y luego revertir a su estado anterior, que debe contener los objetos que ha cargado.

0

Tuve el mismo problema, cuando necesitaba crear un administrador de suscriptores una vez para todas mis pruebas de registro de eventos. Si acabo de utilizar un enlace anterior o un paso normal (por ejemplo, un Dado), el administrador se crearía antes de cada escenario.

Mi solución fue, en última instancia, utilizar un etiquetado antes de anzuelo en mi primer escenario.

Before('@first_logging_scenario') do 
    # do something useful 
end 

Para apagar mi manager, he usado un etiquetado Después de gancho con mi último escenario

After('@last_logging_scenario') do 
    # do something useful 
end 
Cuestiones relacionadas