FactoryGirl中的Dependent Rails模型

时间:2018-02-12 04:00:57

标签: ruby-on-rails testing rspec mocking factory-bot

我重构规范以支持将字符串迁移到新表中的外键。

问题有一个字符串,类型,现在是一个新表:question_types。工厂配置为使用随机字符串作为类型的值。如何更新它以便有5种有效类型可以根据需要分配?

我尝试做的是用

更新问题工厂
## questions.rb
factory.define do
  before(:create) do 
    FactoryGirl.create(:question_types) if QuestionType.all.empty?
  end

# ...more factory

end

## question_types.rb
FactoryGirl :question do
  factory :question_type do
    category 'multiple_choice'
  end

  factory :question_types do
    [
      { label: 'Single Choice', category: 'single_choice' },
      { label: 'Multiple Choice', category: 'multiple_choice' },
      # ... more types here
    ].each do |h|
      FactoryGirl.create(:question_type, h)
    end
  end
end

但是当我运行规范时,问题类型的值总是为零。

1 个答案:

答案 0 :(得分:0)

您可以在工厂定义中使用样本:

question_type { Question.all.types.sample }