如何根据特征实现 FactoryGirl 的条件行为
How do I achieve conditional behavior of FactoryGirl based on traits
我有一个用户工厂。我希望默认情况下确认用户。但是鉴于特征unconfirmed
,我不希望它们被确认。
虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。
factory :user do
after(:create) do |user, evaluator|
# unwanted implementation details here
unless FactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)
user.confirm!
end
end
trait :unconfirmed do
end
end
我正在考虑这些问题。但这不起作用并产生
未定义的方法`未确认'
factory :user do
ignore do
unconfirmed = false
end
after(:create) do |user, evaluator|
user.confirm! unless evaluator.unconfirmed
end
trait :unconfirmed do
unconfirmed = true
end
end
你快到了:
factory :user do
transient do
unconfirmed false
end
trait :unconfirmed do
unconfirmed true
end
after(:create) do |user, evaluator|
user.confirm! unless evaluator.unconfirmed
end
end
我有一个用户工厂。我希望默认情况下确认用户。但是鉴于特征unconfirmed
,我不希望它们被确认。
虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。
factory :user do
after(:create) do |user, evaluator|
# unwanted implementation details here
unless FactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)
user.confirm!
end
end
trait :unconfirmed do
end
end
我正在考虑这些问题。但这不起作用并产生 未定义的方法`未确认'
factory :user do
ignore do
unconfirmed = false
end
after(:create) do |user, evaluator|
user.confirm! unless evaluator.unconfirmed
end
trait :unconfirmed do
unconfirmed = true
end
end
你快到了:
factory :user do
transient do
unconfirmed false
end
trait :unconfirmed do
unconfirmed true
end
after(:create) do |user, evaluator|
user.confirm! unless evaluator.unconfirmed
end
end