2016-12-14 3 views
0

Je suis nouveau sur FactoryGirl, Faker et plus largement sur les tests. Je crois que j'ai besoin d'ajouter un identifiant à mon utilisateur créé par FactoryGirl afin d'évaluer si l'utilisateur peut accéder à certaines pages et/ou a la propriété de certaines ressources imbriquées. Je remets cela en question car je fais des recherches (Google et vérifie StackOverflow) Je ne vois pas beaucoup d'informations sur la génération d'ID pour les ressources créées par FactoryGirl. Puisque mon utilisateur vient avec un ID de zéro, je suppose que le FactoryGirl par défaut est de construire une ressource sans ajouter d'identifiant.Comment créer un user_id pour une build FactoryGirl?

Je vois des informations sur la création d'associations, mais même celles-ci semblent être des identifiants absents. Dans l'application que je crée, tous les accès aux ressources d'un utilisateur sont vérifiés par rapport à l'identifiant d'un utilisateur.

Dois-je créer et ID pour mes utilisateurs générés par FactoryGirl? Si non, pourquoi pas? Que devrais-je faire à la place? Si oui, comment générer différents ID utilisateur pour vérifier les uns par rapport aux autres?

Merci d'avance pour votre contribution.

Répondre

2

L'ID doit être affecté/incrémenté automatiquement si vous persistez dans l'objet utilisateur. Il est possible que vous utilisiez build pour instancier l'objet plutôt que create.

user = build(:user) < - objet est créé, pas enregistré, aucun ID

user = create(:user) < --- objet est créé et enregistré, a ID

Pour les meilleures pratiques, vous assurer que vos tests sont exécutés sur une séparée base de données afin que vous ne polluez pas vos données en direct. Vous pouvez également vérifier https://github.com/DatabaseCleaner/database_cleaner pour un moyen facile de nettoyer vos données de test après un test a été exécuté.

+0

Merci, cela fait tellement de sens que je ne sais pas comment je l'ai manqué avant maintenant. – Lenocam