- 更新日: 2015年6月11日
- RSpec
RSpec3ではrails_helper.rbがrequireされる
スポンサーリンク
Rails のプロジェクトで、RSpec 3 を使うと spec/rails_helper.rb が作成されている。spec/rails_helper.rb は、RSpec 2 では存在しなかったファイルのはずですが、RSpec 3 で Capybara を使おうとして、これが原因でちょっとはまりました。
— 環境 —
rspec-rails (3.1.0)
【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
スポンサーリンク
spec/models, spec/requests などの spec での require が rails_helper に変更
spec/models, spec/requests 以下等の spec ファイルが、spec/rails_helper.rb を require するように変更されています。
1 |
require 'rails_helper' |
最初これに気づかずに、Capybara などの設定を RSpec 2 と同様に spec/spec_helper.rb に書いていたら、テスト実行で以下のようなエラーが発生。
1 2 3 |
uninitialized constant Capybara (NameError) |
なので config の設定などは、spec/spec_helper.rb ではなくて、以下のように spec/rails_helper.rb に書くようにする。
spec/rails_helper.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# ... Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } # ... RSpec.configure do |config| # ... # for Capybara config.include Capybara::DSL # for Paperclip config.include Paperclip::Shoulda::Matchers # for Deveise config.include RequestHelpers, :type => :request end |
これで動いてOKでした。
- – 参考リンク –
- RailsTutorialのテスト駆動開発が上手くいかない時の対処 – Qiita
- RSpec 3 時代の設定ファイル rails_helper.rb について – willnet.in
スポンサーリンク
私は Rails のテストフレームワークには RSpec を使っています。サーバーのテスト用に Serverspec もおすすめです。
>> 次の記事 : RSpec+Capybaraで同名の複数要素の並び順をテストする
<< 前の記事 : Capybara + Launchy で RSpec テストをブラウザで確認
- RSpec の関連記事
- FactoryGirlをSpringと共に使う時の注意
- 複数モデルのpost :createをテストするRSpecコード(Controller Spec)
- RSpec3でTime.nowをスタブ化(stub)
- RSpecでJSONによるPOSTリクエストをテスト
- RSpec & Capybara の雑感
- RSpec+Capybaraで同名の複数要素の並び順をテストする
- Capybara + Launchy で RSpec テストをブラウザで確認
- CapybaraのwithinをRSpecで使う
- Serverspec(RSpec)のテスト出力に色を付けて見やすくフォーマット
- Serverspec で複数のホストで共通のテストを使い回す
Leave Your Message!