3
我在rspec的新,寫RSpec的測試爲View
,有一個問題: 測試失敗,出現錯誤:Rspec的視圖文件不知道我的路線
Failure/Error: render
ActionView::Template::Error:
No route matches {:controller=>"comments", :action=>"create", :format=>nil}
模型的關係很簡單:
post has_many :comments
comment belongs_to :post
視圖文件:
# app/views/posts/show.html.haml
#postform
= form_for @comment do |f|
= f.text_field :name
= f.submit "Reply"
rspec的文件:
# spec/views/posts/show.html.haml_spec.rb
require 'spec_helper'
describe 'posts/show.html.haml' do
it 'renders the form for a new comment creation' do
assign(:post, mock_model(Post).as_new_record.as_null_object)
assign(:comment, mock_model(Comment).as_new_record.as_null_object)
render
end
end
的routes.rb
post '/:name/comments' => 'comments#create', :as => :comments
應用程序工作正常。但是,如果我刪除的routes.rb該行,然後在開發模式我收到同樣的錯誤:
No route matches {:controller=>"comments", :action=>"create", :format=>nil}
所以我認爲它看起來像RSpec的視圖文件不知道我的路由,但我不確定。無論如何,我該如何解決這個問題?
感謝您的回覆!問題與':name'參數完全相同。我已經爲參數分配了'post' mock-model,在'rspec'文件中添加了這一行:'controller.request.path_parameters [:name] = post.name',測試現在可以正常工作。 – evfwcqcg