Ok, donc j'ai rencontré un problème très étrange, directement connecté avec avant les blocs. Je fais un test d'intégration via Watir et RSpec. Pour un test simple pour vérifier si l'utilisateur peut effectuer une connexion, je crée un enregistrement 'utilisateur' dans la base de données au moyen de factory_girl.RSpec: différences en profondeur entre avant (: tous) et avant (: chaque)
Alors je mets le code suivant:
before(:each) do
@user = Factory(:user)
end
if "should perform a login" do
# do stuff
end
En do stuff
j'appelle un navigateur et voir comment l'utilisateur tente de se connecter. Malheureusement, d'une certaine façon, il ne peut pas le faire - "Nom d'utilisateur n'est pas valide".
Après une enquête, j'ai découvert que si je mets le code pour créer l'utilisateur dans le bloc before(:all)
, tout fonctionne comme par magie. Comment ça? Quelle est la différence entre :all
et :each
dans ce contexte? En outre, si je mets le code pour créer l'utilisateur réellement dans le corps de test, cela ne fonctionne toujours pas (c'est-à-dire que l'utilisateur n'est pas ajouté à la base de données ou quelque chose).