我正在编写Rspec视图测试,测试没有通过,但我不确定原因。换句话说,测试的编写方式没有错误,只是期望不符合结果。爱会帮助排除故障。
在下面的测试中,我最初认为问题是我正在寻找的链接位于应用程序布局的导航栏中。所以根据这篇文章的建议:getting Rspec view specs to render application layout,我明确地调用了要呈现的模板和布局。但是,仍然无法找到正确的链接。
我写的href标签直接从实际页面上的inspect元素复制。我也尝试编写路由给我的new_request_path,但这也没有用。
感谢您的帮助!
RSpec查看测试代码:
describe 'signups/new.html.erb' do
it 'displays link to request pages not signup page' do
assign(:signup, FactoryGirl.build(:signup))
render template: "signups/new", layout: "layouts/application"
rendered.should have_link(href: "/new")
end
end
仅供参考,检查元素:
<a class="navbar-brand" href="/new">Make a new request</a>
仅供参考,路线:
get 'new', to: 'requests#new', as: 'new_request'
仅供参考,正在呈现的应用程序布局:
<nav class="navbar navbar-inverse navbar-static-top" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="<%= root_path %>">Home</a>
<a class="navbar-brand" href="<%= new_request_path %>">Make a new request</a>
我认为不需要从正在渲染的新模板中发布任何内容,因为hte test只在应用程序布局中查找。 (但它不是基于布局的视图测试,因为1)我正在测试页面作为一个整体,并且在布局中触发了不同的闪存消息,因为2)我正在编写的其他测试[同样卡住但我认为我可以如果我得到一个帮助,请弄明白它们看看实际的新模板)
答案 0 :(得分:1)
有点想通了这里,这里有一些简短的笔记: