我有以下工厂:工厂女孩误差的has_many关系
should "capture emails" do
lead = Factory.build(:lead)
assert_equal(1, lead.emails.size)
end
:
Factory.define :email do |email|
email.email {"infomcburney.cowan.com"}
end
Factory.define :lead do |lead|
lead.emails {|emails| [emails.association(:email)]}
end
哪些是模拟以下类
class Lead < ActiveRecord::Base
has_many :emails
end
class Email < ActiveRecord::Base
belongs_to :lead, :class_name => "Lead", :foreign_key => "lead_id"
end
当我通过早该运行该测试
我收到以下错误:
Factory::AttributeDefinitionError: Attribute already defined: emails
我完全被卡住这一点,任何人都可以点我在正确的方向。我正在使用factory_girl 1.3.2。
的风格上看:工厂应该包含占位符数据而已。所有这些对你来说都很重要,因为使用它们会产生有效的潜在客户,并且你应该假设附属于潜在客户的电子邮件的实际数量可能会发生变化。如果您的测试依赖于一定数量的线索,请从工厂建立线索,然后明确设置电子邮件。 – Matchu 2010-10-28 23:39:36