Mam następujące fabryki:błąd Dziewczyna z fabryki z relacji has_many
Factory.define :email do |email|
email.email {"infomcburney.cowan.com"}
end
Factory.define :lead do |lead|
lead.emails {|emails| [emails.association(:email)]}
end
które są modelowania następujące klasy
class Lead < ActiveRecord::Base
has_many :emails
end
class Email < ActiveRecord::Base
belongs_to :lead, :class_name => "Lead", :foreign_key => "lead_id"
end
Kiedy uruchamiam test ten poprzez shoulda:
should "capture emails" do
lead = Factory.build(:lead)
assert_equal(1, lead.emails.size)
end
Pojawia się następujący błąd:
Factory::AttributeDefinitionError: Attribute already defined: emails
Całkowicie utknąłem na tym, czy ktoś może wskazać mi właściwy kierunek. Używam factory_girl 1.3.2.
Punkt stylu: fabryki powinny zawierać dane zastępcze i nic więcej. Wszystko, co powinno mieć dla Ciebie znaczenie podczas korzystania z nich, to wygenerowanie ważnego potencjalnego klienta, i powinieneś założyć, że rzeczywista liczba wiadomości e-mail dołączonych do potencjalnego klienta może ulec zmianie. Jeśli twój test zależy od pewnej liczby potencjalnych klientów, zbuduj lead z fabryki, a następnie ustaw jawnie wiadomości e-mail. – Matchu