gpt4 book ai didi

ruby-on-rails - Rails 4.2 - 为什么 assert_select 失败?

转载 作者:数据小太阳 更新时间:2023-10-29 08:31:28 28 4
gpt4 key购买 nike

Mozilla 将页脚中的 about 链接呈现为 href="localhost:3000/about",而它应该呈现为 href="/about",但当我使用 chrome 时不会发生这种情况。

如果能帮助解决我的测试失败的原因,那就太好了。

测试:

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 #failing
assert_select "a[href=?]", contact_path
end

在“bundle exec rake test”之后:

Expected at least 1 element matching "a[href="/about"]", found 0..
Expected 0 to be >= 1.

相关路线.rb:

root             'static_pages#home'
get 'help' => 'static_pages#help'
get 'about' => 'static_pages#about'
get 'contact' => 'static_pages#contact'

调用 link_to 的 View :

<li><%= link_to 'About', about_path %></li> 

注意:这是唯一失败的测试,但是当我注释掉这个测试时,接触测试失败了。

编辑:

这是我的观点:

home.html.erb

<!DOCTYPE html>
<div class="center jumbotron">
<h1>Sample App</h1>

<p>This is the home page for the railtutorial.org book, ch 3</p>
<%= link_to "Sign up now!", signup_path, class: "btn btn-lg btn-primary" %>
</div>
<%= link_to image_tag("rails.png", alt: "Rails logo"), 'http://rubyonrails.org/' %>
</html>

应用程序.html.erb

<!DOCTYPE html>
<html>
<head>
<title><%= full_title(yield(:title)) %></title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
<%= render 'layouts/shim' %>
</head>
<body>
<%= render 'layouts/header' %>
<div class="container">
<%= yield %>
<%= render 'layouts/footer' %>
</div>
</body>

有错误的相关 _footer View :

<footer class="footer">
<small>
The <a href="http://www.railstutorial.org/">Ruby on Rails Tutorial</a>
by <a href="http://www.michaelhartl.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>

最佳答案

也许您正在使用 about_url在你看来而不是 about_path

如果没有,那么在你的测试中添加这一行(失败行上方):

puts assert_select 'a[href]'

这将打印所有 <a href标签,您应该能够看到 about 标签,并了解为什么 URL 不是您期望的那样。

关于ruby-on-rails - Rails 4.2 - 为什么 assert_select 失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30198597/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com