Factory_bot: DuplicateDefinitionError al definir una: fábrica de publicaciones

Creado en 6 mar. 2012  ·  3Comentarios  ·  Fuente: thoughtbot/factory_bot

En spec / factories / post_factory.rb:

FactoryGirl.define do
  factory :post do

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

  end
end

Con eso, obtengo este error:

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

Si cambio factory :post a factory :a_post, class: Post o cualquier otro nombre, funciona bien. Las únicas otras fábricas que he definido son usuario y sesión (y funcionan bien).

¿Estoy haciendo algo mal o hay alguna fábrica de correos interna que se define automáticamente que me impide usar ese nombre?

Comentario más útil

Hay un par de problemas potenciales, asumiendo que está _100% positivo_ no existe otra fábrica de correos (eso es lo primero que verificaría). ¿Está utilizando la gema factory_girl_rails y Rails 3? Si es así, asegúrese de no requerir factory_girl_rails en ninguna parte de su spec_helper o cualquier otro archivo que se cargaría durante sus pruebas. Además, asegúrese de no llamar a FactoryGirl.find_definitions , que cargará todas las fábricas; ejecutar esto dos veces es una forma segura de ver este error. Finalmente, ¿estás llamando a require "spec/factories/post_factory" cualquier lugar? factory_girl_rails cargará todas las fábricas, por lo que esto es innecesario.

FactoryGirl no crea ninguna fábrica para usted de forma predeterminada, por lo que no va a interferir con su fábrica.

Todos 3 comentarios

Hay un par de problemas potenciales, asumiendo que está _100% positivo_ no existe otra fábrica de correos (eso es lo primero que verificaría). ¿Está utilizando la gema factory_girl_rails y Rails 3? Si es así, asegúrese de no requerir factory_girl_rails en ninguna parte de su spec_helper o cualquier otro archivo que se cargaría durante sus pruebas. Además, asegúrese de no llamar a FactoryGirl.find_definitions , que cargará todas las fábricas; ejecutar esto dos veces es una forma segura de ver este error. Finalmente, ¿estás llamando a require "spec/factories/post_factory" cualquier lugar? factory_girl_rails cargará todas las fábricas, por lo que esto es innecesario.

FactoryGirl no crea ninguna fábrica para usted de forma predeterminada, por lo que no va a interferir con su fábrica.

Welp. Aparentemente, cuando generé el modelo de publicación, se creó una prueba / fábricas / publicaciones.rb, pero solo estaba buscando en el directorio de especificaciones ya que uso RSpec.

Quité eso y todo funciona. Gracias.

¡Ah, genial! Supuse que probablemente era el culpable.

¿Fue útil esta página
0 / 5 - 0 calificaciones