8
votes

Définition d'attributs protégés avec FactoryGirl

FactoryGirl ne définit pas mon attribut protégé user.confirmed . Quelle est la meilleure pratique ici? XXX

Je peux faire un @ user.confirmed = true après avoir utilisé mon usine, mais c'est beaucoup de répétition sur beaucoup de tests .


0 commentaires

3 Réponses :


3
votes

Vous devriez le transmettre dans le hachage lorsque vous créez l'utilisateur puisque FactoryGirl la protège de la masse de masse.

user ||= Factory(:user, :confirmed => true)


2 commentaires

Fonctionne pour moi sur FactoryGirl 2.1.0.


J'utilise 2.3.2, alors cela pourrait être, mais il semble peu probable



10
votes

Utilisation d'un After_Create Hook travaux: XXX


1 commentaires

Super trouver. Plus récente de versions de Factory Girl a changé la syntaxe vers après (: Créer) . Voir Guide de démarrage



0
votes

Une autre approche consiste à utiliser des rôles intégrés de rails comme celui-ci: XXX

Lorsque FactoryGirl FactoryGirl diffuse ce rôle, rendant ce modèle possible.

Avantages: garde les usines rapides, simples et propres (moins de code dans les rappels)
inconvénients: Vous modifiez votre code modèle pour vos tests :(

Certaines suggestions non testées pour adresser le con:

  • Vous pouvez ré-ouvrir la classe juste au-dessus de votre usine.
  • Vous pouvez ré-ouvrir la classe dans un [test | Spec] _helper

0 commentaires