link_toと名前付きルートで作ったリンクが正常に表示され、機能しているかどうかを統合テストで確認する。
統合テストはアプリケーションの動作をシミュレートするために使用される。
$ rails generate integration_test site_layout
テストの手順
①ルートURL (Homeページ) にGETリクエストを送る
②正しいページテンプレートが描画されているかどうか確かめる
③Home、Help、About、Contactの各ページへのリンクが正しく動くか確かめる
test/integration/site_layout_test.rb
test "layout links" do
get root_path
assert_template 'static_pages/home'
assert_select "a[href=?]", root_path, count: 2
assert_select "a[href=?]", help_path
assert_select "a[href=?]", about_path
assert_select "a[href=?]", contact_path
end
assert_select "a[href=?]", about_path
はlink_toによって生成されたaタグを調べている。
?の部分に第二引数のパスが代入される。
countオプションによってリンクの個数も調べることができる。
assert_selectについては別記事にまとめたいと思っているが、分かりやすいサイトを見つけたのでここにメモしておく。
assert_selectの使い方
https://zariganitosh.hatenablog.jp/entry/20080405/1207455670
これ以降、レイアウトに新規のアクションとそのリンクを作成した場合は、このテストに書いていくことになる。