Ich habe eine Fabrik für Benutzer. Ich möchte, dass die Benutzer standardmäßig bestätigt werden. Aber angesichts eines Merkmals unconfirmed
möchte ich nicht, dass sie bestätigt werden.Wie erreiche ich bedingtes Verhalten von FactoryGirl basierend auf Merkmalen
Während ich eine funktionierende Implementierung habe, die auf Implementierungsdetails basiert, anstatt auf Abstraktion, würde ich gerne wissen, wie man das richtig macht.
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
Ich denke etwas in diese Richtung. Aber das funktioniert nicht und führt zu einer nicht definierte Methode `unbestätigt‘
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
thx. das hat es getan. – branch14