Factory_bot: DuplicateDefinitionError عند تحديد a: post factory

تم إنشاؤها على ٦ مارس ٢٠١٢  ·  3تعليقات  ·  مصدر: thoughtbot/factory_bot

في المواصفات / المصانع / post_factory.rb:

FactoryGirl.define do
  factory :post do

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

  end
end

مع ذلك ، أحصل على هذا الخطأ:

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

إذا قمت بتغيير factory :post إلى factory :a_post, class: Post أو أي اسم آخر ، فسيكون ذلك جيدًا. المصانع الأخرى الوحيدة التي حددتها هي المستخدم والجلسة (وتلك تعمل بشكل جيد).

هل أفعل شيئًا خاطئًا ، أم أن هناك مصنعًا للبريد الداخلي يتم تحديده تلقائيًا مما يمنعني من استخدام هذا الاسم؟

التعليق الأكثر فائدة

هناك مشكلتان محتملتان ، بافتراض أنك _ 100٪ إيجابي _ لا يوجد مصنع آخر للبريد (هذا هو أول شيء سأفحصه). هل تستخدم factory_girl_rails gem و Rails 3؟ إذا كنت كذلك ، فتأكد من أنك لا تحتاج إلى factory_girl_rails في أي مكان في spec_helper أو أي ملف آخر سيتم تحميله أثناء الاختبارات. تأكد أيضًا من أنك لا تتصل بـ FactoryGirl.find_definitions ، والذي سيؤدي إلى تحميل جميع المصانع ؛ تشغيل هذا مرتين طريقة مؤكدة لإطلاق النار لرؤية هذا الخطأ. أخيرًا ، هل تتصل بـ require "spec/factories/post_factory" أي مكان؟ سيحمل factory_girl_rails جميع المصانع لذا هذا غير ضروري.

لا تنشئ FactoryGirl أي مصانع لك افتراضيًا ، لذا لن تتداخل مع مصنعك.

ال 3 كومينتر

هناك مشكلتان محتملتان ، بافتراض أنك _ 100٪ إيجابي _ لا يوجد مصنع آخر للبريد (هذا هو أول شيء سأفحصه). هل تستخدم factory_girl_rails gem و Rails 3؟ إذا كنت كذلك ، فتأكد من أنك لا تحتاج إلى factory_girl_rails في أي مكان في spec_helper أو أي ملف آخر سيتم تحميله أثناء الاختبارات. تأكد أيضًا من أنك لا تتصل بـ FactoryGirl.find_definitions ، والذي سيؤدي إلى تحميل جميع المصانع ؛ تشغيل هذا مرتين طريقة مؤكدة لإطلاق النار لرؤية هذا الخطأ. أخيرًا ، هل تتصل بـ require "spec/factories/post_factory" أي مكان؟ سيحمل factory_girl_rails جميع المصانع لذا هذا غير ضروري.

لا تنشئ FactoryGirl أي مصانع لك افتراضيًا ، لذا لن تتداخل مع مصنعك.

ويلب. على ما يبدو ، عندما أنشأت نموذج النشر ، تم إنشاء test / plants / posts.rb ، لكنني كنت أبحث فقط في دليل المواصفات منذ أن استخدمت RSpec.

أزلت ذلك وكل شيء يعمل. شكرا.

آه ، رائع! اعتقدت أن هذا هو الجاني على الأرجح.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات