Я действительно пытаюсь понять, как создавать сложные фабрики с Factory Girl, и это НЕ просто.
У меня есть следующее:
Подписка принадлежит пользователю
Подписка принадлежит_плану
Я хочу протестировать разные Plans
. Вот как я это настроил:
FactoryGirl.define do
factory :plan do
trait :copper do
name { "Copper" }
amount { 5 }
stripe_id { "Economy" }
listing_limit { 10 }
repositories_allowed { 1 }
end
trait :copper_multi do
name { "Copper Multi" }
amount { 10 }
stripe_id { "Copper_Multi" }
listing_limit { 10 }
repositories_allowed { 5 }
end
trait :bronze do
name { "Bronze" }
amount { 5 }
stripe_id { "Basic" }
listing_limit { 10 }
repositories_allowed { 1 }
end
trait :bronze_multi do
name { "Bronze Multi" }
amount { 10 }
stripe_id { "Basic_Multi" }
listing_limit { 10 }
repositories_allowed { 5 }
end
end
end
Subscription
завод это:
FactoryGirl.define do
factory :subscription do
association :user
association :plan
start_date { Time.now }
end_date { 365.days.from_now }
end
end
Естественно, это не удается, потому что фабрику Plan
нельзя использовать без указания трейта. Это по дизайну.
Кроме того, в чем разница между:
factory :subscription do
association :user
end
а также:
factory :subscription do
user
end