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

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

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

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

RSpec

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

Q&A

0回答

653閲覧

RSpec テストコードの書き方について

YO14

総合スコア45

Ruby on Rails 6

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

RSpec

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

0グッド

1クリップ

投稿2020/05/17 14:22

#実現したいこと
以下をテストするコードを書きたいです。
「ユーザーが質問を投稿できるシステムにおいて、
質問作成者以外が編集画面にGETでアクセスしたら、質問詳細画面にリダイレクトされること」

#分からないこと
①ユーザーAとユーザーBおよびそれぞれが質問を作成する、というケースの書き方
②①を実行したうえで、かつ「質問を作成したユーザーでないユーザーが、
/quesionts/#{@question.id}/edit にアクセスした

というケースの書き方

#現在のコード
ルーティング
edit_question GET /questions/:id/edit(.:format) questions#edit
question GET /questions/:id(.:format) questions#show

コントローラー
QuestionsController

Ruby

1before_action :ensure_correct_user, only: [:edit, :update, :destroy] 2~~ 3def show 4 @question = Question.find(params[:id]) 5 @answer = Answer.new 6end 7~~ 8def edit 9 @question = Question.find(params[:id]) 10end 11~~ 12def ensure_correct_user 13 @question = Question.find_by(id: params[:id]) 14 if @question.user_id != current_user.id 15 flash[:alert] = "権限がありません" 16 redirect_to("/questions/#{@question.id}") 17 end 18end

RSpec学習を始めたばかりで、かつ既に作成済みの自作アプリに対して市販の技術書のRSpecの作例をあてはめようとしているため、書き方のアレンジに苦戦しております。
お詳しいかた、お知恵をお貸しいただけないでしょうか。宜しくお願いいたします。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問