Rspec和FactoryGirl:SystemStackError:堆栈级别太深

exA*_*Ark 2 rspec ruby-on-rails factory-bot

我有FactoryGirl的问题:

这是我的2家工厂:

FactoryGirl.define do
  factory :task do
    ...
    after(:build) do |task|
      question = FactoryGirl.create(:question)
      task.questions = [question]
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

FactoryGirl.define do
  factory :question do
    association :task, factory: :task
    ...
  end
end
Run Code Online (Sandbox Code Playgroud)

问题工厂创建任务,任务工厂创建问题等.所以,我有一条消息:"SystemStackError:堆栈级别太深".

如何在不破坏关联的情况下解决此问题?

Chr*_*erg 6

你得到的"堆栈级别太深"错误是因为你要按照彼此的方式定义两个工厂.您不需要工厂中的association :task, factory: taskquestion- 在创建任务时将设置关联.

试试这个task工厂:

FactoryGirl.define do
  factory :task do
    ...
    questions { [ FactoryGirl.create(:question) ] }
  end
end
Run Code Online (Sandbox Code Playgroud)