コントローラーの単体テストコードを書く方針
コントローラーのテストコードを書く方針は、あるアクションにリクエストを送ったときに想定通りのレスポンスが生成されるかどうかを確かめることです。
今回は、以下のexampleをテストしました。
- indexアクションにリクエストすると正常にレスポンスが返ってくる
describe 'GET #index' do
it 'indexアクションにリクエストすると正常にレスポンスが返ってくる' do
get root_path
expect(response.status).to eq 200
end
end
まず最初にどこのパスにリクエストを送りたいか記述します。(rails routesにてパスを確認しました。)
Prefix Verb URIPattern Controller#Action
root GET / tweets#index
今回は、indexアクションにリクエストを送りたいのでget root_pathです。
次の行のresponseの記述でリクエストに対するレスポンスそのものが含まれます。続けて.statusと記述することでそのレスポンスのステータスコードが取得できます。
ステータスコードは以下のような分類になっています。
HTTPステータスコード
100~ 処理の継続中
200~ 処理の成功
300~ リダイレクト
400~ クライアントのエラー
500~ サーバーのエラー
今回は正常にレスポンスを得ることを確かめたいため200というステータスコードを期待します。よって、expect(response.status).to eq 200と記述しました。