[RSpec] ControllerのSpecでHTTPステータスコードの値をテストする

ControllerのSpecで、HTTPステータスコードの値をテストする方法をメモ。

当方の環境は以下のとおり。

  • Rails 3.2.1
  • RSpec 2.11.0

方法はとてもカンタンで、以下のサンプルコードのように書けばいいです。強調されている行でHTTPステータスコードの値をチェックしています。

少し解説すると、上のコードはUsersControllershowアクションをテストしているSpecになります。

(仮にid:9999のUserが存在しないとして、)わざと存在しないIDのUser情報を取得した場合に、きちんと404 Not foundがHTTPレスポンスのステータスコードとして返ってくるかを見ています。

response.response_codeにHTTPステータスコードが含まれているので、その値を検証してやればOK。カンタンですね!

今とあるWeb APIを実装中なのですが、ステータスコードもきちんとテストしておきたいなと思ったので、調べてみたのでした。

それでは!