Я пытаюсь создать фабрику для своей пользовательской модели вместе с ее ассоциациями. Однако я не могу правильно понять синтаксис в своем коде Factory Girl. Я прочитал документацию Factory Girl, но не могу найти никакой помощи в моем конкретном случае использования. Ошибки, которые я сейчас получаю при запуске своего набора тестов:
undefined method `subscription_args' for #<FactoryGirl::SyntaxRunner...
а также
Trait not registered: valid_card_data
Вот мои модели и ассоциации:
User.rb
has_one :subscription
has_one :plan, :through => :subscription
has_many :projects
Project.rb
belongs_to :user
Plan.rb
has_many :subscriptions
Подписка.rb
belongs_to :plan
belongs_to :user
а также
А вот мой код Factory Girl:
FactoryGirl.define do
factory :user do
first_name "Joel"
last_name "Brewer"
email { "#{first_name}.#{last_name}@example.com".downcase }
password "foobar"
password_confirmation "foobar"
user_type "entrepreneur"
subscription { build(:subscription, subscription_args) }
after(:create) do |user|
user.subscription.save!
end
end
factory :subscription do
user
plan_id '4'
## I am trying to access a helper method from support/utilities ##
## This call to valid_card_data doesn't seem to be working... ##
stripe_card_token valid_card_data
email "[email protected]"
end
factory :project do
title "Sample Project"
user
end
end