Railsチュートリアルを進めています。

5.3.4の演習でちょっと引っかかった点があったので個人的メモ。

5.3.4

演習の問題は

footerパーシャルのabout_pathをcontact_pathに変更してみて、テストが正しくエラーを捕まえてくれるかどうか確認してみてください。

です。

想定される動き

FAIL["test_layout_links", SiteLayoutTest, 0.35856600012630224]
 test_layout_links#SiteLayoutTest (0.36s)
        Expected at least 1 element matching "a[href="/about"]", found 0..
        Expected 0 to be >= 1.
        test/integration/site_layout_test.rb:10:in `block in <class:SiteLayoutTest>'

  1/1: [==================================================================] 100% Time: 00:00:00, Time: 00:00:00

Finished in 0.35955s
1 tests, 4 assertions, 1 failures, 0 errors, 0 skips

このように、aboutへのリンクが無いためにFailするはず。

実際に起こった動き

Started with run options --seed 51593

  1/1: [==================================================================] 100% Time: 00:00:00, Time: 00:00:00

Finished in 0.37173s
1 tests, 5 assertions, 0 failures, 0 errors, 0 skips

Passしてしまいました。

原因

Aboutページへのリンクが演習で書き換えたfooterパーシャルだけでなく、headerパーシャルにもあったからでした。

チュートリアルのコード中では、ヘッダーにはAboutページへのリンクを設定していなかったものの、自分がコピペしたときなのか、それともアレンジを加えたのか(記憶にない)で、Aboutへのリンクがヘッダーとフッターの2箇所にあったのが原因でした。