前書き
今現在rails tutorial10章に取り組んでいるのですが以前やった内容の理解度が章を重ねるごとに低いなぁと感じたため理解を深めるため復習します。 また同じようにrails tutorialに取り組んでいる方の参考になればと思い記事にしています。
目次
①テストとは.
②なぜテストを行うのか.
③テストの種類と使い方.
④最後に
テストとは
人間の代わりにコンピューターにアプリが想定通り動作するかを確認してもらうこと。
例えば (人間がテストする場合の例) このようなサンプルアプリというTwitterのようなアプリ(作りかけの段階)があった場合、このアプリを世の中に出す前に自分が想定した通りに実装できているか確認する必要がある。その際自分で画面上部のhelpというボタンをクリックして↓の画面のように『ちゃんとhelpページに画面が切り替わっているわぁと』1つ1つチェックする必要がある これをuserページcontactページと全てのページを人間が1つ1つ調べるのは時間もかかるし、チェックし忘れる可能性が出てくる
そこでテスト(人間の代わりにコンピューターにちゃんと動作するか調べてもらう)を使う。
なぜテストを行うのか
①不具合がないかを調べる.
②不具合が出た時に解決までの時間を軽減できる.
テストの種類
①コントローラテスト.
②モデルテスト.
③総合テスト.
①コントローラテストの意味.
文字通りコントローラが不具合なく動くかどうかを調べてくれるテストです.
不具合なくとは.
①ルーティングの設定は適切なものかどうか.
②コントローラの中に適切なアクションは入っているか.
③アクションに対するviewがあるかどうか.
などを調べてくれます.
テスト実行までの流れ使い方.
①テストを書く.
②rails test コマンドをターミナルで入力.
③不具合があるのかないのか教えてくれる.
どこにテストを書くのか
test/controllers/コントローラ名.test.rbに書く
このテストを書くためのコントローラーは
app/controllers/コントローラを作るために入力された
rails generate controller ~
↑このコマンドを入力すると作られる つまりrails generate controller コマンドを使うと2つのコントローラが作られる。内1つはテスト用のコントローラー
コントローラーテストの中身を見てみよう ↓例homeページとhelpページのテスト
require 'test_helper' class StaticPagesControllerTest < ActionDispatch::IntegrationTest test "should get home" do get static_pages_home_url assert_response :success end test "should get help" do get static_pages_help_url assert_response :success end end
1行1行の意味を見ていこう
get static_pages_home_url
urlの末尾に/homeを追加するとgetリクエストが送られるよねって意味
assert_response :success
successで何かしらのhtmlが表示されるよね?って意味
assertは〜だよねぐらいの訳でオッケー
responseは反応
まとめるとurlの末尾に/homeをつけてエンター押すと何かしらのhtmlが返ってくるよねって意味.
最後にターミナルでrails test を入力すると
不具合あるのかないのか教えてくれる.
不具合ない場合(urlの末尾に/homeと追加しエンター押して何かしら画面に表示された時=テスト通りになった時)
緑色の‥が表示される。またfailureが0.
不具合がある場合
赤文字でEかFが表示されてどこがいけないのかを教えてくれる。
最後に
テストを行う手順として.
①テストを書く⇨まずrails testを失敗させる.
②テストが通るよう(成功になるよう)に実際にコードを書く.
③リファクタリング.
②モデルテスト.
③総合テスト.
↑2つに関しては今回記事が長くなったので次回の記事で書きます。