为什么这家工厂不工作?
Why this factory does not work?
我正在尝试单元测试我的 app.I 有一个 order
模型,这个模型有一个 attr_accessor register_client
。如果访问器有一个值 1
:
order.client = User.create
它可以工作,但是当我尝试对此进行测试时 - 我创建了一个工厂
FactoryGirl.define do
factory :order do
username Faker::Name.name
register_client "1"
end
end
它失败了:
order = FactoryGirl.create(:order)
order.client
=> nil
你应该这样做:
FactoryGirl.define do
factory :user do
#put necessary here
end
factory :order do
trait :with_client do
register_client "1"
association :client, factory: :user
end
trait :unregistered_client do
username { Faker::Name.name }
end
factory :order_with_client, traits: [:with_client]
end
end
那么您将拥有:
FactoryGirl.create(:order, :with_client)
# same as
FactoryGirl.create(:order_with_client)
FactoryGirl.create(:order, :unregistered_client)
我正在尝试单元测试我的 app.I 有一个 order
模型,这个模型有一个 attr_accessor register_client
。如果访问器有一个值 1
:
order.client = User.create
它可以工作,但是当我尝试对此进行测试时 - 我创建了一个工厂
FactoryGirl.define do
factory :order do
username Faker::Name.name
register_client "1"
end
end
它失败了:
order = FactoryGirl.create(:order)
order.client
=> nil
你应该这样做:
FactoryGirl.define do
factory :user do
#put necessary here
end
factory :order do
trait :with_client do
register_client "1"
association :client, factory: :user
end
trait :unregistered_client do
username { Faker::Name.name }
end
factory :order_with_client, traits: [:with_client]
end
end
那么您将拥有:
FactoryGirl.create(:order, :with_client)
# same as
FactoryGirl.create(:order_with_client)
FactoryGirl.create(:order, :unregistered_client)