FactoryGirlのロードの仕組み

2014-08-05T00:00:00+00:00 rspec Ruby

普段、Railsとかを使う分にはfactory_girl_railsなパッケージが勝手にやってくれるから良いけどそうじゃない環境(ActiveRecordを単体で使ってるようなケースとか)の場合には

require "factory_girl"

FactoryGirl.find_definitions

RSpec.configure do |config|
  config.include FactoryGirl::Syntax::Methods

  # 以降省略
end

っていうような感じでspec_helperとか辺りでFactoryGirl.find_definitionsを実行してFactoryGirlなfixtureをロード(実行するという意味合いではない)する。でデフォルトでは["factories", "test/factories", "spec/factories"] というようなパスでマッチするのを取ってくるみたいだが、FactoryGirl.definition_file_pathsっていうプロパティがあるのでそれに参照するディレクトリパス等を突っ込めば違うディレクトリにする事も可能な模様

んまぁfactory_girl_railsだとhttps://github.com/thoughtbot/factory_girl_rails/blob/master/lib/factory_girl_rails/railtie.rb#L13っていうような感じになってる

まぁそんな感じで。よく忘れるのでメモっておく

ActiveRecordのpolymorphic ActiveRecord Optimistic Locking