tyoshikawa1106のブログ

- Force.com Developer Blog -

Rails:ルートの定義とテストについて

Railsチュートリアルのルートのテストについて勉強しました。


前回までで、静的ページの結合テストを書いておいたので、ルートに対するテストはシンプルに済みます。


現在『spec/requests/static_pages_spec.rb』に次のような処理があると思います。

visit '/static_pages/about'


このvisitの処理を次のように変更します。

visit about_path

※aboutページ以外も同様に変更します。

f:id:tyoshikawa1106:20150721035328p:plain


これでテストを行うとエラーになることを確認できます。

$ bundle exec rspec spec/requests/static_pages_spec.rb


Railsのルートを設定してこのエラーを解決していきます。


まずは名前付きルートを定義するため、以下のようなルールを置き換えます。

get 'static_pages/help'


上のルーティングを下記のように置き換えます。

match '/help', to: 'static_pages#help', via: 'get'


他のページ以外も同様に変更しますが、Homeページだけは例外です。次のようになります。

root  'static_pages#home'

こうすることでデフォルトのページ (localhost:3000/)にアクセスした際にHomeページが表示されるようになります。

f:id:tyoshikawa1106:20150721032827p:plain


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


ルートの定義とテストの方法は以上です。後は、レイアウトのリンクをこれらの名前付きルートで指定していきます。