为什么在 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/' }