読者です 読者をやめる 読者になる 読者になる

tyoshikawa1106のブログ

- Force.com Developer Blog -

Rails:ページの追加とテストについて

Railsで新しくページを追加するときの手順についてです。Contactページを追加してみます。

ページ追加作業を行う前に現時点でテストが正常に実行されるか確認します。

$ bundle exec rspec spec/requests/static_pages_spec.rb


自分の環境ではHomeページのテストでエラーが発生しました。
f:id:tyoshikawa1106:20150721024703p:plain


チュートリアルを進める際に勘違いで一行目のタイトル部分を除外していたためです。

<% provide(:title, 'Home') %>

元に戻して正常にテストが実行されることを確認しました。
f:id:tyoshikawa1106:20150721024900p:plain

f:id:tyoshikawa1106:20150721024928p:plain


ここまで問題ないことを確認できたらページ追加を行っていきます。

テストの追加

はじめに「spec/requests/static_pages_spec.rb」に対してテストを追加します。
f:id:tyoshikawa1106:20150721025116p:plain

※『describe "Contact page" do』の処理です。


テスト追加後は次のコマンドでテストを実行します。

$ bundle exec rspec spec/requests/static_pages_spec.rb

Contactページはまだ存在していないのでエラーになることを確認できます。
f:id:tyoshikawa1106:20150721025322p:plain

Contactページ用のルートを追加

テスト追加後はルートの追加を行います。
config/routes.rb
f:id:tyoshikawa1106:20150721025541p:plain

※『get "static_pages/contact"』の部分です。

Contactページ用のアクションを追加

app/controllers/static_pages_controller.rb
f:id:tyoshikawa1106:20150721025657p:plain

※『def contact』の部分です。

Contactページのビューの作成

app/views/static_pages/contact.html.erb
f:id:tyoshikawa1106:20150721025859p:plain


これでテストが通るようになります。
f:id:tyoshikawa1106:20150721025959p:plain

まとめ

Railsで新しいページの追加とテストについての手順は以下のとおりです。

  1. テスト実行 (既存機能のエラー有無確認)
  2. 新しいページ用のテスト追加 (テスト追加によるエラー確認)
  3. 新しいページ用のルートを追加
  4. 新しいページ用のアクションを追加
  5. 新しいページのビューの作成
  6. テスト実行 (正常に実行されることを確認)