[rspec, rails] Restful Routes in controller specs


#1

Hi,

how is it possible that I can use the restful routes helpers (e.g.
new_user_path) in controller specs? I browsed the source code but I
couldn’t find the magic. I’m just curious and would appreciate any
hint…

thanks
Andi


#2

On Wed, Mar 11, 2009 at 3:30 AM, Andi S.
removed_email_address@domain.invalid wrote:

Hi,

how is it possible that I can use the restful routes helpers (e.g.
new_user_path) in controller specs? I browsed the source code but I
couldn’t find the magic. I’m just curious and would appreciate any
hint…

If you’re asking how to do it, you just do. There’s nothing you have
to do. They’re there for free.

If you’re asking how they are there for free, controllers specs wrap
rails functional tests, so they have all the services provided by
rails.

Cheers,
David


#3

On Mar 11, 2009, at 4:30 AM, Andi S. wrote:

rspec-users mailing list
removed_email_address@domain.invalid
http://rubyforge.org/mailman/listinfo/rspec-users

You can use them -after- the request, eg

post :create
response.should redirect_to( foo_path )

You can’t before the request because they’re not loaded yet.

Actually, I have a routes_spec.rb that goes something like this:

class FoosController < ApplicationController
def foo
end
end

describe FoosController, “named routes” do
before do
get :foo
end

it "should route /users/:id" do
       user_path('123').should == '/users/123'
       params_from(:get, '/users/123').should == {:controller =>

‘users’, :action => ‘show’, :id => ‘123’}
end
end


#4

Thanks a lot David, my question was ‘how’ they are for free. That
explains why I didn’t find it in the rspec-rails sourcecode.

Cheers
Andi