前提・実現したいこと
Rails5でRSpecを用いた、コントローラーのテストを書きたいのですが、localhost:3000(root)にアクセスした時のテストはどのように行えばよいのでしょうか?
httpのステータスコードが200になっていれば成功というテストを書きたいです。
コードの例を示してくれると助かります。
よろしくお願いします。
該当のソースコード
example_pages_controller.rb
ruby
1class ExamplePagesController < ApplicationController 2 def home 3 end 4end
routes.rb
ruby
1 root 'example_pages#home' 2
試したこと
example_pages_controller_spec.rb
ruby
1describe 'Access root' do 2 it 'http access success' 3 get :root 4 expect(response).to have_http_status(:success) 5 end 6end
###エラー
ActionController::UrlGenerationError:
No route matches {:action=>"root", :controller=>"example_pages"
補足情報(FW/ツールのバージョンなど)
エラーではコントローラーにrootアクションを定義していないことが問題のように言われている気がしますが...
example_pages_controllerにrootのアクションを定義はしないですよね(しても動きませんでした)
Rails 5.2.1
RSpec 3.8
- rspec-core 3.8.0
- rspec-expectations 3.8.2
- rspec-mocks 3.8.0
- rspec-rails 3.8.1
- rspec-support 3.8.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。