FactoryGirlをSpringと共に使う時の注意

スポンサーリンク
【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました

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

テスト実行後も 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サービス開発日記

以上です。

スポンサーリンク
私は Rails のテストフレームワークには RSpec を使っています。サーバーのテスト用に Serverspec もおすすめです。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!