我正在写Rspec视图测试,并且测试没有通过,但我不知道为什么。换句话说,测试写入的方式没有错误,只是期望不符合结果。爱会帮助解决问题。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
FYI,检查元素:
<a class="navbar-brand" href="/new">Make a new request</a>
FYI,路线:
get 'new', to: 'requests#new', as: 'new_request'
FYI,应用布局被呈现:
<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)我正在测试整个页面,并且布局中触发了不同的Flash消息,因为2)我正在编写的其他测试[同样卡住了,但我认为我可以计算出来,如果我得到一个求助]看看实际的新模板)
在rspec配置中有这个'config.render_views'吗? –
如果您实际测试布局,为什么这是对signups/new.html.erb视图的测试? –
@Derek它不是基于布局的视图测试,因为1)我测试整个页面,并且在布局中触发不同的Flash消息,因为2)我正在编写的其他测试[同样卡住了,但我想我可以找出他们,如果我得到一个帮助]看看实际的新模板 – james