FactoryGirlでコールバックをスキップする

FactoryGirlでテストデータを作るとき、before_createなどのコールバックも実行されて、いろいろめんどくさいときがある。

FactoryGirl.define do
  factory :user do
    name 'naoty'
    age  18

    after(:build) do
      User.skip_callback(:create, :before, :hoge_method, :fuga_method)
    end
  end
end
  • skip_callbackはメソッドごとにスキップするか設定できる。
  • 似たようなものにreset_callbacksがあるけど、これはイベントに設定されてるコールバックメソッドのすべてをスキップする。
  • after(:build)のところはスキップしたいコールバックのタイミングによって、調整する必要あると思う。

バージョン

  • factory_girl (3.3.0)
  • factory_girl_rails (3.3.0)

参考