

capybaraを使って、フィーチャースペックを書いています。

[code]

    class UserController < ApplicationController
      def index
        redirect_to new_user_path
      end
    
      def new
        # do something
      end
    end
    
[/code]

というコントローラーがあったとして、

[code]

        feature "サンプルフィーチャー", :type => :feature do
          scenario "新規ユーザー作成画面へ遷移する" do
            visit users_path
            expect(current_path).to eq new_user_path
          end
        end
    
[/code]

上のように、なんらかのイベント後にredirect先のページにリダイレクトされているかを検証したいのですが、何か方法はありますか？？


CC BY-SA 3.0
2016-02-03T12:27:41.250
21673
2016-05-03T23:13:22.020
12758
question
ruby-on-rails rspec
capybaraを用いて、redirect先のページを検証する方法


以下のようなexampleを書けばいいと思います。  
visitのところを好きなクリックしたら移動するようなメソッドに変えると望んだことが出来ると思います。

[code]

    feature "サンプルフィーチャー", :type => :feature do
      scenario "新規ユーザー作成画面へ遷移する" do
       visit users_path
       expect{ visit new_user_path }.to change {
         current_path
       }.from(users_path).to(users_path)
      end
    end
    
[/code]


CC BY-SA 3.0
2016-02-03T13:07:46.970
21675
2016-02-03T13:07:46.970
7373
21673
answer