1
聽巨人機器人粉碎成其他巨人機器人播客,聽說你希望你的FactoryGirl工廠是最小的,只提供那些使對象在數據庫中有效的屬性。話雖如此,但談話還表示特質是基於未來可能發生變化的屬性來定義特定行爲的一種非常好的方式。編寫無效的FactoryGirl工廠/特性是不是個好主意?
我想知道是否有一個好主意,有特性定義,有目的地失敗驗證清理規範代碼。這裏有一個例子:
factory :winner do
user_extension "7036"
contest_rank 1
contest
trait :paid do
paid true
end
trait :unpaid do
paid false
end
trait :missing_user_extension do
user_extension nil
end
trait :empty_user_extension do
user_extension ""
end
end
會允許我這樣稱呼我的規格build_stubbed(:winner, :missing_user_extension)
在測試中,我打算失敗驗證。我想我可以通過將這些壞工廠嵌入另一個名爲:invalid_winner
的工廠來進一步明確失敗,但我不太確定這是否有必要。我最感興趣的是聽到別人對這個概念的看法。