Factory_bot: DuplicateDefinitionError saat mendefinisikan :post factory

Dibuat pada 6 Mar 2012  ·  3Komentar  ·  Sumber: thoughtbot/factory_bot

Dalam spec/factories/post_factory.rb:

FactoryGirl.define do
  factory :post do

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

  end
end

Dengan itu, saya mendapatkan kesalahan ini:

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

Jika saya mengubah factory :post menjadi factory :a_post, class: Post atau nama lain apa pun, itu berfungsi dengan baik. Satu-satunya pabrik lain yang saya tetapkan adalah pengguna dan sesi (dan itu berfungsi dengan baik).

Apakah saya melakukan sesuatu yang salah, atau apakah ada beberapa pabrik pos internal yang secara otomatis ditentukan yang mencegah saya menggunakan nama itu?

Komentar yang paling membantu

Ada beberapa masalah potensial, dengan asumsi Anda _100% positif_ tidak ada pabrik pos lain (itu hal pertama yang saya periksa). Apakah Anda menggunakan permata factory_girl_rails dan Rails 3? Jika ya, pastikan Anda tidak memerlukan factory_girl_rails di mana pun di spec_helper Anda atau file lain apa pun yang akan dimuat selama pengujian Anda. Juga, pastikan Anda tidak memanggil FactoryGirl.find_definitions , yang akan memuat semua pabrik; menjalankan ini dua kali adalah cara yang pasti untuk melihat kesalahan ini. Akhirnya, apakah Anda menelepon require "spec/factories/post_factory" mana saja? factory_girl_rails akan memuat semua pabrik jadi ini tidak perlu.

FactoryGirl tidak membuat pabrik apa pun untuk Anda secara default sehingga tidak akan mengganggu pabrik Anda.

Semua 3 komentar

Ada beberapa masalah potensial, dengan asumsi Anda _100% positif_ tidak ada pabrik pos lain (itu hal pertama yang saya periksa). Apakah Anda menggunakan permata factory_girl_rails dan Rails 3? Jika ya, pastikan Anda tidak memerlukan factory_girl_rails di mana pun di spec_helper Anda atau file lain apa pun yang akan dimuat selama pengujian Anda. Juga, pastikan Anda tidak memanggil FactoryGirl.find_definitions , yang akan memuat semua pabrik; menjalankan ini dua kali adalah cara yang pasti untuk melihat kesalahan ini. Akhirnya, apakah Anda menelepon require "spec/factories/post_factory" mana saja? factory_girl_rails akan memuat semua pabrik jadi ini tidak perlu.

FactoryGirl tidak membuat pabrik apa pun untuk Anda secara default sehingga tidak akan mengganggu pabrik Anda.

Yah. Rupanya ketika saya membuat model posting, sebuah test/factories/posts.rb telah dibuat, tetapi saya hanya mencari di direktori spesifikasi karena saya menggunakan RSpec.

Saya menghapus itu dan semuanya berfungsi. Terima kasih.

Hebat! Saya pikir itu kemungkinan pelakunya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat