Railsチュートリアルのルートのテストについて勉強しました。
前回までで、静的ページの結合テストを書いておいたので、ルートに対するテストはシンプルに済みます。
現在『spec/requests/static_pages_spec.rb』に次のような処理があると思います。
visit '/static_pages/about'
このvisitの処理を次のように変更します。
visit about_path
※aboutページ以外も同様に変更します。
これでテストを行うとエラーになることを確認できます。
$ 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ページが表示されるようになります。
これでテストに通るようになります。
ルートの定義とテストの方法は以上です。後は、レイアウトのリンクをこれらの名前付きルートで指定していきます。