- 更新日: 2016年1月21日
- RSpec
FactoryGirlをSpringと共に使う時の注意
Rails アプリケーションの開発で、Spring 利用時に FactoryGirl を使う上での注意点です。Spring 導入については以下参考。
RailsでSpringを導入して開発効率を上げる | EasyRamble
— 環境 —
Rails 4.1.1
Ruby 2.1.2
rspec-rails 2.14.0
FactoryGirl のリロード設定
Spring を利用していて FactoryGirl を使う場合は、spec_helper.rb に以下を記載する。または RSpec 3 系なら rails_helper.rb に記載でもよい。
spec/spec_helper.rb
1 2 3 4 5 |
RSpec.configure do |config| config.before(:suite) do FactoryGirl.reload end end |
テスト実行後も Spring によってバックグラウンドでプロセスが保持されるので、この記述がないと FactoryGirl の変更が次のテスト実行時に反映されないためです。テストを実行する際に FactoryGirl をリロードして変更が反映されるようにします。
なお、ここでの RSpec の before フックには :each や :all ではなくて、:suite を指定するのが良いかと思う。理由は :suite だと、テスト実行時の最初に1回だけ before ブロックが実行されるので、負荷が少ないかと考えたため。before フックの :each, :all, :suite の違いについては以下などを参照お願いします。
NAMAKESUGI |[Rails3]spec_helperのあれこれ
Cahpter 17 Extending RSpec その1 – おもしろwebサービス開発日記
以上です。
- – 参考リンク –
- Rails4時代の高速テスト環境 Rspec+Guard+FactoryGirl+Spring[NEW!] – Qiita
- [Ruby on Rails]FactoryGirlによるテストデータの準備 | Developers.IO
- RailsでFactoryGirlを使ってみるメモ [俺の備忘録]
- Rails4.1 with zeusでrspec3使おうとしたらいろいろハマった – Qiita
- RSpec の関連記事
- 複数モデルのpost :createをテストするRSpecコード(Controller Spec)
- RSpec3でTime.nowをスタブ化(stub)
- RSpecでJSONによるPOSTリクエストをテスト
- RSpec & Capybara の雑感
- RSpec+Capybaraで同名の複数要素の並び順をテストする
- RSpec3ではrails_helper.rbがrequireされる
- Capybara + Launchy で RSpec テストをブラウザで確認
- CapybaraのwithinをRSpecで使う
- Serverspec(RSpec)のテスト出力に色を付けて見やすくフォーマット
- Serverspec で複数のホストで共通のテストを使い回す
Leave Your Message!