8
votes

Rails 3 + RSPEC 2: La validation a échoué: le courrier électronique a déjà été pris.

J'ai 2 modèles, utilisateur code> et godets code>. utilisateur code> has_many code> gaux code> et a godet code> appartient à l'utilisateur code> A code> >.

dans usines.rb code>, j'ai: p> xxx pré>

et j'ai un module login_user comme suit: p>

  bucket.association :user


0 commentaires

3 Réponses :


5
votes

Essayez ceci dans votre usine d'utilisateur:

rake db:test:prepare


3 commentaires

Merci. J'ai essayé tout ça sans succès. Cependant, je crois que j'ai trouvé le problème mais je ne suis pas sûr que cela a du sens. Ici, ça va: Quand je crée un seau (qui est associé à un utilisateur), je ne passe pas l'utilisateur, donc si je fais l'usine (: seau,: utilisateur => user.first), cela fonctionnera. Logique?


Oui, ça aurait un sens. J'ai eu des associations comme celle-ci où je dois créer une association valide pour que l'autre modèle soit testé.


Merci! C'était une grande aide!



6
votes

Lorsque vous définissez une usine avec une association, vous devez donner à l'usine un objet à associer à chaque fois que vous utilisez l'usine.

Ceci devrait fonctionner: P>

describe "User authenticated: " do
  login_user
  @bucket = Factory(:bucket, :user => @user)

  it "should get index" do
    get 'index'
    response.should be_success
  end
end


0 commentaires

0
votes

Si quelqu'un obtient cela récemment avec votre point de vue. Essayez d'utiliser Nettoyant de base de données .

Pour plus d'informations: RailStyputial - Chapitre 8.4.3 - Base de données de test Ne pas effacement après ajout de l'utilisateur en test d'intégration


0 commentaires