Ok, quindi mi sono imbattuto in un problema molto strano, direttamente collegato ai blocchi precedenti. Sto facendo un test di integrazione tramite Watir e RSpec. Per un semplice test per verificare se l'utente può eseguire un login sto creando un record "utente" nel db tramite factory_girl.RSpec: differenze approfondite tra before (: all) e before (: each)
così ho messo il seguente codice:
before(:each) do
@user = Factory(:user)
end
if "should perform a login" do
# do stuff
end
In do stuff
io chiamo un browser e vedere come l'utente tenta di accedere. Sfortunatamente, in qualche modo non può farlo - "Username non è valido".
Dopo alcune indagini ho scoperto che se inserisco il codice per la creazione di utenti nel blocco before(:all)
, , tutto funziona magicamente. Com'è quello? In questo contesto, qual è la differenza tra :all
e :each
? Inoltre, se inserisco il codice per la creazione dell'utente nel corpo del test, non funziona ancora (ad esempio, l'utente in qualche modo non viene aggiunto al DB o qualcosa del genere).