前提・実現したいこと
Ruby on Railsで作成したアプリケーションにRSpecでのテストを実装したい。
taskコントローラの中に「admin」という名前空間を作り、一般ユーザとadminで処理をわけている。
名前空間のテストを記述する方法が調べてもよくわかりません。
よろしくお願いいたします。
ソースコード
route.rb
ruby
1Rails.application.routes.draw do 2 namespace :admin do 3 resources :tasks 4 resources :users 5 end 6 7 devise_for :users 8 resources :tasks 9 resources :users 10end
/spec/controllers/tasks_controller_spec.rb
RSpec.describe TasksController, type: :controller do #一般ログインユーザが正常にページアクセスできる事 describe "#access check" do context "as authenticate_user" do before do @user = FactoryBot.create(:user) end end #未ログインユーザはログインが必要なページにアクセスできず、リダイレクトされる事 context "as not_authenticate_user" do it "cant access index" do get :index expect(response).to have_http_status "302" end it "redirect_to sign_in" do get :index expect(response).to redirect_to "/users/sign_in" end end end
補足情報(FW/ツールのバージョンなど)
Ruby2.6
Ruby on Rails5.2
Rspec
FactoryBot
あなたの回答
tips
プレビュー