Factory_bot: DuplicateDefinitionError lors de la définition d'une :post factory

Créé le 6 mars 2012  ·  3Commentaires  ·  Source: thoughtbot/factory_bot

Dans spec/factories/post_factory.rb :

FactoryGirl.define do
  factory :post do

    user
    title Faker::Lorem.sentence
    body Faker::Lorem.paragraphs

  end
end

Avec cela, j'obtiens cette erreur:

... factory_girl-2.6.1/lib/factory_girl/registry.rb:39:in `add_as': Factory already registered: post (FactoryGirl::DuplicateDefinitionError)

Si je change factory :post en factory :a_post, class: Post ou tout autre nom, ça marche bien. Les seules autres usines que j'ai définies sont l'utilisateur et la session (et celles-ci fonctionnent bien).

Est-ce que je fais quelque chose de mal ou existe-t-il une usine de publication interne automatiquement définie qui m'empêche d'utiliser ce nom ?

Commentaire le plus utile

Il y a quelques problèmes potentiels, en supposant que vous êtes _100% positif_ aucune autre usine de post n'existe (c'est la première chose que je vérifierais). Utilisez-vous le gem factory_girl_rails et Rails 3 ? Si c'est le cas, assurez-vous que vous n'avez pas besoin de factory_girl_rails dans votre spec_helper ou dans tout autre fichier qui serait chargé pendant vos tests. Assurez-vous également que vous n'appelez pas FactoryGirl.find_definitions , qui chargera toutes les usines ; l'exécuter deux fois est un moyen infaillible de voir cette erreur. Enfin, appelez-vous require "spec/factories/post_factory" n'importe où ? factory_girl_rails chargera toutes les usines, ce n'est donc pas nécessaire.

FactoryGirl ne crée pas d'usines pour vous par défaut, donc cela ne va pas interférer avec votre usine.

Tous les 3 commentaires

Il y a quelques problèmes potentiels, en supposant que vous êtes _100% positif_ aucune autre usine de post n'existe (c'est la première chose que je vérifierais). Utilisez-vous le gem factory_girl_rails et Rails 3 ? Si c'est le cas, assurez-vous que vous n'avez pas besoin de factory_girl_rails dans votre spec_helper ou dans tout autre fichier qui serait chargé pendant vos tests. Assurez-vous également que vous n'appelez pas FactoryGirl.find_definitions , qui chargera toutes les usines ; l'exécuter deux fois est un moyen infaillible de voir cette erreur. Enfin, appelez-vous require "spec/factories/post_factory" n'importe où ? factory_girl_rails chargera toutes les usines, ce n'est donc pas nécessaire.

FactoryGirl ne crée pas d'usines pour vous par défaut, donc cela ne va pas interférer avec votre usine.

Salut. Apparemment, lorsque j'ai généré le modèle de publication, un fichier test/factories/posts.rb a été créé, mais je ne cherchais que dans le répertoire spec depuis que j'utilise RSpec.

Je l'ai supprimé et tout fonctionne. Merci.

Ah, génial ! J'ai pensé que c'était probablement le coupable.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

Backoo picture Backoo  ·  6Commentaires

loybert picture loybert  ·  4Commentaires

EverybodyKurts picture EverybodyKurts  ·  4Commentaires

chintanparikh picture chintanparikh  ·  3Commentaires

andyw8 picture andyw8  ·  4Commentaires