为什么在Rails 3中测试控制器时不能使用路由器路径?为什么在控制器测试中不能使用路由器路径?
我明白get :new
转化为{controller: 'sessions', action: 'new'}
,但为什么signin_path
没有转化为同样的事情?例如:
# routes.rb
match 'signin', to: 'sessions#new'
# sessions_spec.rb
it "renders the 'new' template" do
get signin_path
response.should render_template :new
end
产地:
No route matches {:controller=>"sessions", :action=>"/signin"}
它将如果有办法,你会你的应用程序中测试使用路由器语法的路线是很好的,而不是如get signin_path
{ get: 'http://app.com/signin/' }
语法应该是'match'/ signin',以''sessions#new''(你没有领先的'/')。 – cdesrosiers
@cdesrosiers:不正确。但是,公平地说,你建议的代码工作也是。 –