背景
Ruby on Rails チュートリアルを参考に、Rails 4.2.0
とRSpec 3.1.7
でWebアプリケーションの作成を行っている際、チュートリアルとのバージョンの違い(チュートリアルはRSpec2
)により、spec/support
ディレクトリ内のファイルが読み込まれない問題が発生しました。
問題
Rails Tutorial 5.3.4では、spec/support/utilities.rb
にRSpecのテストで共通で使用したいメソッドを記述すればよいと、以下の通り書かれております。
spec/supportディレクトリはRSpecによって自動的に読み込まれる
しかし、RSpec3では、単純にspec/support/
にファイルを追加しても、読み込んでくれませんでした。どうやら原因は、spec/rails_helper.rb
がデフォルトではspec/support/
を自動的に読み込まない設定になっていたのが原因なようです。
解決
下記のコードが自動でspec/support/
を読み込む設定なのですが、デフォルトではコメントアウトされていました。こいつのコメントアウトを外してやります。すると、うまくいきました。
spec/rails_helper.rb
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }