Hemos implementado de esta manera:
En pepino se ejecuta el escenario de 'fondo' antes de cada 'escenario' en el archivo de función. Entonces, en la parte superior de cada archivo de características (en el 'fondo') configuramos un usuario y le otorgamos al usuario el rol de administrador.
Ahora, esto le proporciona un usuario administrador listo y disponible en cada 'escenario'.
Tenga en cuenta que este usuario administrador no sobrevivirá en la función de base de datos a db, ya que Cucumber está gestionando registros en las transacciones. Por lo tanto, si necesita agregar algo a este usuario administrador en una función y usarlo desde otra función, esta forma de hacerlo no es utilizable. Pero como entendí su pregunta, solo quiere asegurarse de que no intente crear el usuario administrador si ya está creado. La creación del usuario administrador en el 'fondo' asegura que solo se crea una vez para cada función.
Tenga en cuenta que en su lugar podría crear el usuario administrador en cada 'escenario'. Cucumber lo eliminará de la base de datos al final del 'escenario', por lo que en cualquier punto, solo tendrás un usuario administrador. Sin embargo, esto no es SECO y no debe hacerse (a menos que solo necesite el usuario administrador en algunos 'escenarios', y específicamente exija que no esté presente en otros 'escenarios').
pepino 'fondo' ejemplo utilizando definición de paso factorygirl: definición
Background:
Given the following user exists:
| Name | Role |
| Admin | Administrator |
fábrica:
factory :user do
name 'John Doe'
role 'Guest'
end
Qué quiere decir 'crear una nueva instancia' en lugar de 'crear una nueva fábrica'? Una fábrica crea instancias. –