Rails チュートリアルで Rspec 時に undefined local variable or method 'root_path' と出た時の対処

シェアする

ちょっとはまってたのでメモ。

Rails チュートリアルの5章でルーティングを指定した際に同時にテストコードも書き換える部分がある。この部分の通りに config/routes.rb 及び spec/requests/static_pages_spec.rb を編集すると以下のようなエラーが出てテストが失敗した。

7) Static pages Home page
     Failure/Error: before { visit root_path }
     NameError:
       undefined local variable or method `root_path' for #<RSpec::ExampleGroups::StaticPages::HomePage:0x007fff15c556b8>
     # ./spec/requests/static_pages_spec.rb:14:in `block (3 levels) in <top (required)>'

調べてみるとこの対処方法には以下の2つがあるようだ。

  1. spec_helper.rb に名前付きルートを使えるように指定する
  2. spork を使用している場合はリロードする

自分の場合は spork 未使用時にエラーが出たので名前付きルートが RSpec で使えないのが原因だろうと以下のページを参照し spec_helper.rb を修正したところ正常に動作した。

RSpec.configure do |config|
  config.include Rails.application.routes.url_helpers
end

チュートリアルとバージョンの指定が微妙に違うのでそのへんでエラーが出たのだろうか。まー動いたから良しとしよう。

Sponsored Link

シェアする

フォローする