Integration_sign_up in RailSturial Capitolo 9 ESERCIZI NON FUNZIONA
-
28-10-2019 - |
Domanda
Sto imparando rais dal libro del tutorial dei Rails: http://ruby.railstturial.org/chapters/sign-in-sign-out#fnref:9.14
Sto lavorando all'esercizio. L'assegnazione è quella di creare un metodo di accesso in helper Spec in modo che possa essere utilizzato nei test di integrazione. Ha già dato il codice:
def integration_sign_in(user)
visit signin_path
fill_in :email, :with => user.email
fill_in :password, :with => user.password
click_button
end
Quindi, nel mio test di integrazione layout_links_spec.rb, ho intenzione di usarlo.
before(:each) do
@user = Factory(:user)
visit signin_path
fill_in :email, :with => @user.email
fill_in :password, :with => @user.password
click_button
# integration_sign_in(Factory(:user))
end
Commento tutto e uso integration_sign_in(Factory(:user))
. L'errore che ricevo è
ActiveRecord::RecordInvalid:
Validation failed: Email has already been taken
Tuttavia, se utilizzo l'originale che sembra così simile alla funzione integrazione_sign_in, i test passano. Qualcuno può fornire una spiegazione per favore?
Grazie.
Soluzione
Sembra che il tuo: User Factory sta restituendo lo stesso indirizzo email ogni volta che crea un utente. Perché hai il prima (: ciascuno) sta per fare e imbottire nel DB più di un utente e avranno tutti la stessa e -mail.
Se pubblichi la tua fabbrica, probabilmente possiamo modificarla per usare una sequenza o trovare una soluzione alternativa.