Rails5 FactoryGirlでコールバックをスキップする方法
Rails4では使えたFoo.skip_callback(:create, :after, :bar)
がRails5では使えない。
ArgumentError: After create callback :do_something has not been defined
対策として、次のようにFGにおいてメソッドを上書きする:
class User < ActiveRecord::Base after_create :run_something end
FactoryGirl.define do factory :user do after(:build) do |user| class << user def run_something true end end end factory :user_with_run_something do after(:build) do |user| class << user def run_something super end end end end end end
コールバックメソッドの発火タイミングによって、after(:build)
も変更する必要がある
参考: