ゼロ進歩なプログラマー

ゼロ進歩な初心者プログラマー

プログラミング初心者から初心者へ

ざっくり3分で把握 Rails2 コントローラーテスト

前回記事で作られた

home_controller_test.rb の解説と自動テストの重要度

前回記事読んでなく把握できない人は読み直してくださいね

 

yomi06.hatenablog.com

 

 まずは home_controller_test.rb の中身の確認f:id:yomi06:20180517140048p:plain

 

test "should get top" do

  get home_top_url

  assert_response :success

end

テストとして使われているのはこの部分

なにをしているか実際にテストしながら見ていきましょう

f:id:yomi06:20180517140454p:plain

aboutで同じテストをするように書き加えてテスト実行!エラーがもらえます笑

rails test home  コマンドで home_controller_test.rbが実行されるみたい

となんとなく空気だけつかみましょう

undefined local variable or method 'home_about_url'

未定義のローカル変数またはメソッド とGoogle翻訳とりあえずなにかがないことがわかる

 

rails generate controller home top help と top と helpページが作られた時を思い出してみる

 ※ 見るべきは home/top home/help の部分

f:id:yomi06:20180516185937j:plain

 

テストは加えたけどviewsフォルダにabout の html.erbもなければ

routes.rbに記述もしていない

前回の  rails generate controller home top help コマンドで作られたものがない

 

ということで routes.rb に 'home/about' を書き加えてテストを実行!

f:id:yomi06:20180517141754p:plain

変わらずエラー しかしエラーの文が変わってて長くなっている

 

なにか変化があったということでエラー文の比較

上が routes.rbの書き込む前 下が書き込んだ後

f:id:yomi06:20180517141925p:plain

undefined から ActionNotFound に変化しているっぽい

 アクションを作る

 

またCreate

rails generate contorller で作られた

controller内のアクションの追加(コントローラーはアクションが入ってるとイメージしておいてね)

f:id:yomi06:20180517151234j:plain

さらにabout の html.erb viewsフォルダに作ってテスト

f:id:yomi06:20180517142403p:plain

上のエラー文はさっきのエラーで

下半分が新しくテストした部分ですね

注目ポイントは 3 runs, と 0 errors

いままで特に説明していなかったけど

3つのテストを run 行って 0エラー  だったよということ

 

ページ表示は省きますが

~~.html.erbviewsフォルダにつくり  routes.rb  に getで書き加えれば

htmlページとして表示することができます(テストは書かなくてもOK)

 

※じゃあなぜテストが必要なのか???

今はまだ Top Help About の3ページしか作られていません確認は3つのページが表示できるかみるだけで簡単です

しかし更にページを作っていく

例えばクックパッドみたいにいろいろな人が多くのレシピページを作ると

それを1ページ毎に確認するのは無理に近い

ということで

自分で実際に確認することなくエラーとなってないかを手っ取り早く調べる方法がテストを書くことでした

個人で規模の小さいWebサイトを作るときは見落とされがちですが

あなたが大きなサービスに関わりたいのであれば見落としが少なくなり絶対必要な技術だと思います

 

 

前回の記事

yomi06.hatenablog.com