ume

rails tutorial 3章 前編 復習

前書き 

今現在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つに関しては今回記事が長くなったので次回の記事で書きます。