页脚链接失败的集成测试



我正在为即将到来的项目提供对ROR的了解,并通过Rails教程工作,并竞争了第5.3.4节"布局链接测试",而没有任何重大问题。p>据我所知,本节使我感到困惑,我的代码已更改以匹配该教程,因此应该有效。

标题的集成测试工作正常,但是页脚集成测试都无法正常工作。

页面上的链接正在按预期工作,但是测试正在返回(如果评论了关于接触接触测试的AOD测试,则会发生相同的错误)。

我缺少一些很明显的东西,但我无法识别。

我的代码位于我的Bitbucket存储库中

 FAIL["test_layout_links", SiteLayoutTest, 1.4785866689999239]
 test_layout_links#SiteLayoutTest (1.48s)
        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>'

页面中存在链接html

<nav>
  <ul class ="nav navbar-nav navbar-right">
    <li><a href="/">Home</a></li>
    <li><a href="/help">Help</a></li>
    <li><a href="#">Log in</a></li>
  </ul>
</nav>
<nav>
  <ul>
    <li><a href="/about">About</a></li>
    <li><a href="/contact">Contact</a></li>
    <li><a href="http://news.railstutorial.org/">News</a></li>
  </ul>
</nav>

site_layout_test.rb

require 'test_helper'
class SiteLayoutTest < ActionDispatch::IntegrationTest
  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
end

application.html.erb

<!DOCTYPE html>
<html>
  <head>
    <title><%= yield(:title) %> | Ruby on Rails Tutorial Sample App</title>
    <%= render 'layouts/rails_default' %>
    <%= render 'layouts/shim' %>
  </head>
  <body>
    <%= render 'layouts/header' %>
    <div class="container">
      <%= yield %>
      <%= render 'layouts/footer' %>
    </div>
  </body>
</html>

_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>
        <li><%= link_to "Log in", '#' %></li>
      </ul>
    </nav>
  </div>
</header>

_footer.html.erb

<footer class="footer">
  <small>
    The <a href="http://www.railstutorial.org/">Ruby on Rails Tutorial</a> by
    <a href="http://www.michaelartl.com/">Michael Hartl</a>
  </small>
  <nav>
    <ul>
      <li><%= link_to "About",   about_path %></li>
      <li><%= link_to "Contact", contact_path %></li>
      <li><a href="http://news.railstutorial.org/">News</a></li>
    </ul>
  </nav>
</footer>

感谢您抽出宝贵的时间来查看问题。

查看home.html.erb。您的最后一行关闭页面:</html>。因此,当您在application.html.erb中使用它时,页面在创建页脚之前结束。

说...出于某种原因,这不是该页面在浏览器中呈现的方式。好像额外的关闭标签被忽略了。因此,您的页脚实际上显示了。

最新更新