テストコード
今日の学び
<<テストコードを書く方針>>
モデル→インスタンスを生成し、それがモデルに規定した通り挙動になるかを確かめる
コントローラー→あるアクションにリクエストを送ったとき、想定どおりのレスポンスが生成されるかどうか確かめる
<コントローラーの単体テストコードを書く>
・Request SpecとはRspecが提供しているコントローラーのテストコードを書くために特化した手法
・get→indexアクションにリクエストすると正常にレスポンスが返ってくることを確かめるために「indexアクションにリクエストすると」を行う記述をgetを使用して行う。get 〇〇_pathと使う。どのパスに対応しているかは、rails routesコマンドで確かめる。
・response→レスポンスの内容を確認する。
・HTTPステータスコード→どのような処理の結果となったのかを示すもの。正常なレスポンスかどうかを判断するために使う。
・status→response.statusでステータスコードの確認が出来る。
・body→response.bodyでブラウザに表示されるHTMLの情報を抜き出すことができる。
FactoryBot.create(:tweet)
buildではなくcreateを使うのは何で?ってなったので
→記録する範囲が違う
buildはインスタンスをメモリ上にのみ記録する
createはテストデータベース上にも保存して、データを永続化させる
データベースに書き込むのは時間がかかるので、データベースに保存する必要がないときはbuildを使う
今回はあらかじめデータベースにツイートが保存されている状態を考えるためcreate