###現状
RSpecでの、showアクションのようなモデルごとのidを含む絶対パスの指定法をお聞きしたいです。
現在railsでアプリを作っています。
Userモデルの登録に成功した時、ユーザー自身のページにリダイレクトさせたいと考え
以下のようにUsersコントローラーに記述しました。
UsersController
1 def create 2 @user = User.new(user_params) 3 if @user.save 4 flash[:success] = "ユーザー登録に成功しました" 5 redirect_to @user 6 else 7 render 'new' 8 end 9 end
###エラーログ
ローカルサーバー上では問題なく動作するのですが、
RSpecを用いたテストを実行するとエラーが起きてしまいます。
UsersTest
1 context "必要なユーザー情報が全て揃っている時" do 2 3 before(:each) do 4 post '/users', params: {user: FactoryBot.attributes_for(:pass_user)} 5 end 6 7 it "リダイレクト先がshowアクション" do 8 expect(response).to redirect_to ("http://www.example.com/users/1 ") 9 end 10
ErrorLog
1 1) POST /users 必要なユーザー情報が全て揃っている時 リダイレクト先がshowアクション 2 Failure/Error: expect(response).to redirect_to ("http://www.example.com/users/1 ") 3 4 Expected response to be a redirect to <http://www.example.com/users/1 > but was a redirect to <http://www.example.com/users/1>. 5 Expected "http://www.example.com/users/1 " to be === "http://www.example.com/users/1". 6 # ./spec/requests/users/new_request_spec.rb:32:in `block (3 levels) in <top (required)>'
###試したこと
エラーログに出力されている
Expected response to be a redirect to <http://www.example.com/users/1
のパスをテストにコピペしましたがダメでした。
また、もっとRailsらしいスマートな書き方があると思うのですが自分では見つけることが出来ませんでした。
この場合、どのように絶対パスを指定すれば良いのでしょうか。
ご回答いただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/29 10:29