我正在寫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