[rspec-users] route_to to test root route

David Chelimsky dchelimsky at gmail.com
Wed Sep 29 06:50:41 EDT 2010


On Sep 29, 2010, at 12:44 AM, Amiruddin Nagri wrote:

> I am working on a Rails 3 application using RSPec 2.beta.20. 
> 
> I am having the following routes in my routes.rb
> 
> routes.rb
> ------------
> resources :projects
> root :to => 'projects#index'
> 
> I am trying to test both the routes. But while testing root route I am getting a failure :
> 
> it 'should route root to projects#index' do
>   {:get => '/'}.should route_to(:controller => 'projects', :action => 'index')
> end
> 
> But the above example is failing since route_to is expecting a route like '/projects'. Is there a way to test root routes which are also configured elsewhere in the routes.rb.

route_to delegates to assert_routing, which only passes if both assert_generates and assert_recognizes passes. There was a lengthy thread about this [1] but we never resolved the API deficiency. Obviously we need something before a final rspec-rails-2 release, but in the mean time you can always use the built-in rails assertions. In this case, you'd use:

  assert_recognizes({:controller => "projects", :action => "index"}, {:method => "get", :path => "/"})

Cheers,
David

[1] http://groups.google.com/group/rspec/browse_thread/thread/50b46ca3e4bd3a78/2a60d77662a1ec31
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20100929/7296ab2b/attachment-0001.html>


More information about the rspec-users mailing list