Rails4での話。(3以下は未確認。おそらくRails3でも同じ) tl;dr rails4ではテスト実行時にtransactional_fixturesのせいでafter_commitが呼ばれない test_after_commitを使えば解決できる rails5では修正されている 問題 test実行時にActiveRecord::Callbacksのafter_commitが呼ばれない そのため、意図通りに動かない・テストが通らないということになる after_commitのドキュメントには以下のように書いてある https://github.com/rails/rails/blob/v4.2.5/activerecord/lib/active_record/transactions.rb#L235-L237 Note that transactional fixtures do n