我有一个用户工厂。我希望默认情况下确认用户。但鉴于特征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
答案 0 :(得分:8)
你快到了那里:
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