[railstutorial] 5.3.4 링크 테스트가 통과되지 않음

TL;DR


sample_app/app/views/layouts/_footer.html.erb 확인
불필요한 싱글 따옴표가 붙어 있는지 확인한다.

얻은 교훈
"코드는 잘못되어 있지 않을 것인데 왜 잘 작동하지 않는다"때는,
 대부분 문자가 아니고 기호의 과부족이 원인.


문제점



5.3.4 "링크 테스트"목록 5-32 "레이아웃 링크에 대한 테스트"에서 테스트가 통과되지 않는다.

상황



console
rails test:integration
      ↓
1) Failure:
SiteLayoutTest#test_layout_links [/foobar/sample_app/test/integration/site_layout_test.rb:10]:
Expected at least 1 element matching "a[href="/about"]", found 0..
Expected 0 to be >= 1.

1 runs, 4 assertions, 1 failures, 0 errors, 0 skips

해결까지 한 일


  • console에 rails s를 넣는다
  • http://localhost:3000/ 방문
  • 페이지에서 About을 클릭하십시오
  • Routing Error 발생

  • sample_app/app/views/layouts/_footer.html.erb 확인

  • sample_app/app/views/layouts/_footer.html.erb
    <footer class="footer">
      (省略)
      <nav>
        <ul>
          <li><%= link_to "About",   'about_path' %></li>
          <li><%= link_to "Contact", 'contact_path' %></li>
          (省略)
       </ul>
      </nav>
    </footer>
    

    원인



    link_to 메소드의 두 번째 인수에 명명된 루트를 제공할 때
    실수로 싱글 따옴표(')를 붙인 채로 하고 있었으니까.

    대책



    sample_app/app/views/layouts/_footer.html.erb
    <footer class="footer">
      (省略)
      <nav>
        <ul>
         <li><%= link_to "About",    about_path %></li>
         <li><%= link_to "Contact",  contact_path %></li>
          (省略)
       </ul>
      </nav>
    </footer>
    

    sample_app/app/views/layouts/_header.html.erb
    <header class="navbar navbar-fixed-top navbar-inverse">
      <div class="container">
        <%= link_to "sample app", root_path, id: "logo" %>
        <nav>
          <ul class="nav navbar-nav navbar-right">
            <li><%= link_to "Home",    root_path %></li>
            <li><%= link_to "Help",    help_path %></li>
            (省略)
          </ul>
        </nav>
      </div>
    </header>
    

    좋은 웹페이지 즐겨찾기