君だけの高速に動作するFactoryGirlを作ろう2

fixturesを一切使わないなら、 before(:suite) の中でレコードの削除と先読みしたいレコード作成しておけば完成する。テスト毎にrollbackもしてくれるし。

https://github.com/fnando/factory_girl-preload/blob/master/lib/factory_girl/preload/rspec2.rb

RSpec.configure do |config|
[...]
  config.before(:suite) do
    FactoryGirl::Preload.clean
    FactoryGirl::Preload.run
  end
[...]
end

しかし、fixtuires を使っているとfixtuiresの処理(レコード削除と挿入)と衝突するため、せっかく挿入したレコードが全て削除されてしまう。

fixturesと同居するには、fixtuiresの処理が終わった後に挿入しなければならない。
万事休すかと思ったけどfixutures の初期化処理後にフックできるように作られているようでsuperをmoduleで上書きしてあげるとfixtuires との同居ができる。 https://github.com/rails/rails/blob/5473e390d362755125d2f47b64ef0a135f2fe111/activerecord/lib/active_record/fixtures.rb#L852

ただし他のgemと競合するのは目に見えているので厳しいさをすでに感じる。