我一直在做Harl教程,这个问题并没有引起很大的问题,但我无法弄清楚为什么我的测试无法找到“联系”页面的链接。任何指向正确方向的人都会受到赞赏。
Controller:
class StaticPagesController < ApplicationController
def home
end
def help
end
def about
end
def contact
end
end
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
assert_select "a[href=?]", help_path
assert_select "a[href=?]", contact_path
assert_select "a[href=?]", about_path
end
end
routes.rb
Rails.application.routes.draw do
root 'static_pages#home'
get 'help' => 'static_pages#help'
get 'about' => 'static_pages#about'
get 'contact' => 'static_pages#contact'
get 'signup' => 'users#new'
resources :users
end
这是该链接唯一的位置,在
中_footer.html.erb
<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://railstutorial.org/">News</a></li>
</ul>
</nav>
这是我收到的错误消息:
1) Failure:
SiteLayoutTest#test_layout_links [/home/will/rails/sample_app/test/integration/site_layout_test.rb:9]:
Expected at least 1 element matching "a[href="/contact"]", found 0..
Expected 0 to be >= 1.
这是联系人模板: &lt;%provide(:title,“Contact”)%&gt;
请联系Ruby on Rails教程,了解联系页面上的示例应用程序。
这是application.html.erb的布局
<!DOCTYPE html>
<html>
<head>
<title><%= full_title(yield(:title)) %></title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
<%= render 'layouts/shim' %>
</head>
<body>
<%= render 'layouts/header' %>
<div class="container">
<%= yield %>
<%= render 'layouts/footer' %>
<%= debug(params) if Rails.env.development? %>
<div>
</body>
</html>
答案 0 :(得分:0)
在测试get root_path
之后,添加puts response.body
并将结果添加到答案中。您还可以添加布局文件。
答案 1 :(得分:0)
刚刚解决了这个类似的错误 - 然而我在'about'页面上。
删除!DOCTYPE html
&amp;从 contact.html.erb 文件中写入的任何其他html
。
运行测试,你应该好好去!