fv17の日記

Webエンジニアの備忘用ブログです。主にWeb界隈の技術に関して書いています。

RSpec - コントローラスペックでは何をテストすべきか

前提

Rails5からは request spec で記述することが推奨され、公式から controller spec を書くことは非推奨とされている。

テストすべき内容

  • Webリクエストが成功したか
  • 正しいページにリダイレクトされたか
  • ユーザー認証が成功したか
  • レスポンスのテンプレートに正しいオブジェクトが保存されたか
  • ビューに表示されたメッセージは適切か

出典:「Rails テスティングガイド」における「7 コントローラの機能テスト」。

具体的なテストコード

下記、および書籍 Everyday Rails の第5章 コントローラスペックを参照。
RailsのController Spec | 酒と涙とRubyとRailsと

コントローラスペックからリクエストスペックへの移行方法

@t2kojima さん*1がqiitaの記事でまとめてくださっている。

Rails5でコントローラのテストをController specからRequest specに移行する - Qiita