質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Q&A

0回答

1035閲覧

【RSpec】NoMethodError: undefined method `root_path' というエラーが発生したので解決したいです

aoiblog

総合スコア0

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

0グッド

0クリップ

投稿2020/10/30 08:41

編集2020/10/30 09:02

前提・実現したいこと

※Ruby on Railsの初心者です。
RailsでオリジナルSNSアプリを作っています。
Railsのテスト実装中に以下のエラーメッセージが発生しました。
spec/system/static_pages_spec.rb

恥ずかしながら自力で解決できず、かれこれ数時間経過したので質問させていただくことにしました。
よろしくお願いいたします。

環境
ruby 2.5.7
Rails 6.0.3.4

発生している問題・エラーメッセージ

Failure/Error: visit root_path NoMethodError: undefined method `root_path' for #<RSpec::ExampleGroups::StaticPages::Nested::Nested::Nested:0x00007fc062a5b570> [Screenshot]: /Users/aoi/projects/find-app/tmp/screenshots/failures_r_spec_example_groups_static_pages_nested_nested_nested_アプリのぺージネーションが表示されること_490.png # ./spec/system/static_pages_spec.rb:7:in `block (4 levels) in <top (required)>'

該当のソースコード

ruby

1require 'rails_helper' 2 3RSpec.describe "StaticPages", type: :system do 4 describe "トップページ" do 5 context "ページ全体" do 6 before do 7 visit root_path 8 end 9 10 it "FindAppsの文字列が存在することを確認" do 11 expect(page).to have_content 'FindApps' 12 end 13 14 it "正しいタイトルが表示されることを確認" do 15 expect(page).to have_title full_title 16 end 17 18 context "アプリフィード", js: true do 19 let!(:user) { create(:user) } 20 let!(:app) { create(:app, user: user) } 21 22 before do 23 login_for_system(user) 24 end 25 26 it "アプリのぺージネーションが表示されること" do 27 create_list(:app, 6, user: user) 28 visit root_path 29 expect(page).to have_content "みんなのアプリ (#{user.apps.count})" 30 expect(page).to have_css "div.pagination" 31 App.take(5).each do |d| 32 expect(page).to have_link d.name 33 end 34 end 35 36 it "「新しいアプリを作る」リンクが表示されること" do 37 visit root_path 38 expect(page).to have_link "新しいアプリを作る", href: new_app_path 39 end 40 end 41 end 42 end 43 44 describe 'aboutページ' do 45 context 'ページ全体' do 46 before do 47 visit about_path 48 end 49 50 it 'FindAppとは?の文字列が存在することを確認した' do 51 expect(page).to have_content 'Find Appsとは?' 52 end 53 54 it '正しいタイトルが表示されていることを確認した' do 55 expect(page).to have_title full_title('Find Appsとは?') 56 end 57 end 58 end 59 60 describe 'use_of_termsページ' do 61 context 'ページ全体' do 62 before do 63 visit use_of_terms_path 64 end 65 66 it '利用規約の文字列が存在することを確認した' do 67 expect(page).to have_content '利用規約' 68 end 69 70 it '正しいタイトルが表示されていることを確認した' do 71 expect(page).to have_title full_title('利用規約') 72 end 73 end 74 end 75end

試したこと

1.routeファイルのroot_pathの記述に間違いがあるのではないかと仮説したのですが特に記述間違いなどはありませんでした。

一応載せておきます。

ruby

1Rails.application.routes.draw do 2 root to: 'static_pages#home' 3 get :about, to: 'static_pages#about' 4 get :use_of_terms, to: 'static_pages#terms' 5 get :signup, to: 'users#new' 6 get :login, to: 'sessions#new' 7 post :login, to: 'sessions#create' 8 delete :logout, to: 'sessions#destroy' 9 resources :users 10 resources :apps 11end

2.以下の記事に書かれていた通りに、spec_helper.rbを修正後、実行すると違うエラーがおきました。

https://loumo.jp/archives/9370

ruby

1RSpec.configure do |config| 2 config.include Rails.application.routes.url_helpers 3end
Failure/Error: config.include Rails.application.routes.url_helpers NameError: uninitialized constant Rails # ./spec/spec_helper.rb:17:in `block in <top (required)>' # ./spec/spec_helper.rb:16:in `<top (required)>' No examples found. No examples found.

補足情報(FW/ツールのバージョンなど)

他にも色々と調べてみたのですが、解決策が見当たりません。
必要箇所他にございましたら提供いたしますので、ご教示いただきたく存じます。
お手数をおかけしますが何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問