【发布时间】:2014-02-03 18:18:49
【问题描述】:
好的,伙计们。这有什么意义呢?两个嵌套工厂(FactoryGirl 认为是继承)不应相互冲突。到底他妈发生了什么?要么不是继承,要么是。如果不是,我不知道为什么他们会称其为继承。我只是做错了什么吗? (通知f.account_type)
看看下面的工厂定义。
factory :partner do |f|
f.company_name { Faker::Company.name }
f.username { Faker::Internet.user_name }
f.password { Faker::Internet.password }
f.password_confirmation { password }
f.pid { Faker::Lorem.word }
f.association :primary_contact
# Inherited
factory :business_partner do
f.account_type "business"
f.tax_id { Faker::Company.duns_number }
end
# Inherited
factory :personal_partner do
f.account_type "personal"
f.ssn { Faker::Company.duns_number }
end
end
当我运行测试时,我得到了这个错误。
Failure/Error: partner = FactoryGirl.create(:business_partner)
FactoryGirl::AttributeDefinitionError:
Attribute already defined: account_type
为了完整起见,我的规范。
# spec/models/partner.rb
require 'spec_helper'
require 'pp'
describe Partner do
it "has a valid factory" do
partner = FactoryGirl.create(:business_partner)
partner.should be_valid
puts partner
end
it "is invalid without a firstname" do
# FactoryGirl.build(:partner_contact, first_name: nil).should_not be_valid
end
it "is invalid without a lastname" do
# FactoryGirl.build(:partner_contact, last_name: nil).should_not be_valid
end
it "is invalid without an email address" do
# FactoryGirl.build(:partner_contact, email: nil).should_not be_valid
end
#it "returns a contact's fullname as a string"
end
【问题讨论】:
标签: ruby rspec ruby-on-rails-4 factory-bot