Ok, me he encontrado con un problema muy extraño, conectado directamente con los bloques before. Estoy haciendo una prueba de integración a través de Watir y RSpec. Para una prueba simple para verificar si el usuario puede realizar un inicio de sesión, estoy creando un registro de 'usuario' en el archivo db por medio de factory_girl.RSpec: diferencias en profundidad entre before (: all) y before (: each)
por lo que poner el siguiente código:
before(:each) do
@user = Factory(:user)
end
if "should perform a login" do
# do stuff
end
En do stuff
que llamo un navegador y ver cómo el usuario intenta iniciar sesión. Desafortunadamente, de alguna manera no puede hacer eso: "El nombre de usuario no es válido".
Después de un poco de investigación descubrí que si puse el código para crear usuario en el bloque before(:all)
, todo funciona mágicamente. ¿Como es que? ¿Cuál es la diferencia entre :all
y :each
en este contexto? Además, si coloco el código para crear al usuario realmente en el cuerpo de prueba, todavía no funciona (es decir, el usuario de alguna manera no se agrega al DB o algo así).