bte*_*les 13 ruby routing rspec routes ruby-on-rails
鉴于我有一条命名路线:
map.some_route '/some_routes/:id', :controller => 'some', :action => 'other'
Run Code Online (Sandbox Code Playgroud)
如何使用路由规范文件'spec/routing/some_routing_spec.rb'来测试该命名路由?
我在"描述SomeRouteController"块之后尝试了这个并且它不起作用,我得到'undefined method'helper":
describe SomeRouteHelper, 'some routes named routes' do
it 'should recognize some_route' do
helper.some_route_path(23).should == '/some_routes/23'
end
end
Run Code Online (Sandbox Code Playgroud)
Bal*_*ldu 13
如果这是在控制器规范中,您可以直接调用路由方法,不需要帮助程序.
describe SomeController do
it 'should recognize ma routes!' do
thing_path(23).should == '/things/23'
end
end
Run Code Online (Sandbox Code Playgroud)
这也有一个很好的应该匹配:
it { should route(:get, "/users/23").to(:action => "show", :id => 23)
Run Code Online (Sandbox Code Playgroud)
有关使用带有rspec的shoulda匹配器的更多信息:
https://github.com/thoughtbot/shoulda-matchers