railsのテスト

Pocket
LINEで送る

controllerを自動作成する

上記のファイルが作成される。テスト関連のファイルも作成してくれる。javascriptのファイルまで作成している。

test/controllers/static_pages_controller_test.rbが、static_pages_controllerのテストコード。中身は下記のようになっている。

言葉で表すと「Homeページのテスト。GETリクエストをhomeアクションに対して発行 (=送信) せよ。そうすれば、リクエストに対するレスポンスは[成功]になるはず。」となります。

(引用:http://railstutorial.jp/chapters/static_pages?version=4.2#cha-static_pages

Gemfileの修正

下記チュートリアルの内容。Production環境は、Herokuでpostgreを利用。テストのために、test環境の設定が必要。guardとかは、なくても基本的なことは動くらしい。

引用:http://railstutorial.jp/chapters/static_pages?version=4.2#sec-advanced_testing_setup

Gemfileを修正したら、bundle installする。production環境の設定は開発環境では不要なため、下記のようにする。

テストの実行

テストスイートは期待どおりパス GREEN します (パスしたときにも色を表示できるようにするには、3.7.1のminitestレポーターをオプションで追加する必要があります)。ところで、テストの実行にはある程度時間がかかります。これには2つの要因が絡んでいます: (1) Spring serverを起動してRails環境を事前読み込みするのに時間がかかる。ただしこれは最初の1回だけです。(2) Rubyそのものの起動に時間がかかる (2番目の要因については、3.7.3で紹介するGuardを導入することで改善できます)。

引用:http://railstutorial.jp/chapters/static_pages?version=4.2#sec-advanced_testing_setup

テスト結果に色をつける

ターミナルでテストを実行しても、デフォルトだと文字に色がつきません。test/test_helper.rbの内容を下記のようにすると色がつきます。minitest-reporters gemが必要です。

テストの自動実行

Guardというのを使います。’guard-minitest’というgemです。gemのバージョンは、2.3.1です。

guardの初期化

guardを初期化するとGuardfileが作成されます。

Guardfileの編集

初期のGuardfileは下記のようになってました。

使っているRailsのバージョンは、4.2.2なので、Rails 4の箇所のコメントを外してみます。変更があったら、該当のテストファイルのテストを実行するようです。

guardの実行

これで自動実行されるようになりました。

Pocket
LINEで送る

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です