我正在使用RSpec測試我的視圖。由於一些變化,現在有在視圖中url_for
一個電話,所有我寫了show
行動是失敗的規格:正確的種子路線查看方式
No route matches {:controller=>"events", :action=>"show"}
的:id
部分缺失以及由於呼叫失敗。
(我知道我可以只存根失敗的方法調用)
的only thing I found是很老,看起來像一個糟糕的解決辦法。此外RSpec documentation不顯示有用的東西。
是否有正確的方法告訴RSpec它應該在events/123
之類的東西上?
一些更多的上下文:
在視圖 我叫幫手,是這樣的:
def some_helper_method
url_for(only_path: false)} + "something_else"
end
該方法的調用失敗,
Failure/Error: render
ActionView::Template::Error:
No route matches {:controller=>"events", :action=>"show"}
我目前正在通過對該方法的電話進行修改來修復它view.stub(some_helper_method: 'SOME_URL')
您使用的是stub_model嗎?如果是這樣,我認爲可以爲您提供正確的答案。我知道創建視圖規範的最佳做法是存根模型(包括其id部分),否則會遇到非常慢的視圖規範,這對您的測試套件來說是一個很大的缺點。 –
不,我使用工廠的女孩,但如何'stub_model'幫助 – phoet
如果你使用的是stub_model我會說當分配模型視圖在視圖規範,缺少的':id'將是問題的原因。通過'FactoryGirl.create',這不應該成爲問題,因爲創建後會提供'id'。你可以粘貼視圖的規範和url_for聲明嗎?我不認爲這是一個難以追查的事情,我會很樂意提供幫助;) –