traitの定義の仕方、呼び出し方

はじめに

10月からRunteqの課題取組中
駆け出しエンジニアです.
日々の学びをアウトプットします.  

概要

  • データを変更したもの呼び出したい  
  • 定義の仕方  
  • 呼び出し方  

    データを変更したもの呼び出したい 

    FactoryBotを使用していると、1部のカラムのみ変更したデータを呼び出したいときがある.
    そういった時に便利なのがtraitだ.

    定義の仕方

FactoryBot.define do
  factory :task do
    title { 'Task' }
    status { rand(2) }
    from = Date.parse("2019/08/01")
    to   = Date.parse("2019/12/31")
    deadline { Random.rand(from..to) }
    association :project

    #上の内容も引き継ぎつつ、カラムの内容は上書き
    trait :yesterday do
      status { :done }
      completion_date { Time.current.yesterday }
    end
    trait :tomorrow do
       status { :doing }
      completion_data { Time.current.tomorrow }
    end
       ・
       ・
       ・
  end
end

呼び出し方

  done_task  = create(:task, :yesterday)
  doing_task = create(:task, :tomorrow)