ビリヤード系筋トレプログラマ

プログラミング, 筋トレ, ビリヤード, エンジニア, etc

FactoryGirlって共通定義ないのか?

問題点

/factories/users.rb

factory :User_fac, class: User do
    trait :test1_data do
      id 1000
      name "TEST1 DATA"
      address "TEST1 DATA"
    end

    trait :test2_data do
      id 1001
      name "TEST2 DATA"
      address "TEST2 DATA"
    end
end

/factories/posts.rb

factory :Post_fac, class: Post do
    trait :test1_data do
      id 1000
      name "TEST1 DATA"
      address "TEST1 DATA"
    end

    trait :test2_data do
      id 1001
      name "TEST2 DATA"
      address "TEST2 DATA"
    end
end

上記2ファイルの1000,1001ように、ファイル間で同じ値を使用している場合にどこかに共通定義として定義して、そちらから参照する形に持っていきたいが、やり方がわからない。

試行錯誤

factoryのファイル内にenumを作る

module ModuleName
      TEST1 = 1000
      TEST2 = 1001
end

Factoryファイルで宣言するが、Rspec側でCreateされるたびに呼び出されるので
warning: already initialized constant ModuleName::TEST1
warning: previous definition of TEST1 was here
が出てうるさい。

Rspec側のbefore :suiteとかで呼び出された時のコールバックとして宣言すればいけるんだろうか。

正直色々ググったけどいい感じの解決方法が見つからない。

誰か教えてください。