How to invoke multiple controllers in the same describe block?

Hi,

I seek to authenticate and then test other routing in RSpec, but the
standard RSpec vernacular…

describe SomeController do

it “blah-blah” do
get :new

end

end

…doesn’t seem to allow me to post my login data, as in the following
pseudo-code:

describe SomeController do

before(:each) do
post :controller=>“authentication”, :action=>
“create”, :new_session=>{“user_name”=>“Lille”…}
end

end

I’ve scanned all the methods in the RDoc, but I cannot identify the
manner in which I may specify the controller directly. Any help?

Thanks,

Lille

On Sep 3, 2010, at 12:12 PM, Lille wrote:

Hi,

I seek to authenticate and then test other routing in RSpec, but the
standard RSpec vernacular…

describe SomeController do

it “blah-blah” do
get :new

end

end

…doesn’t seem to allow me to post my login data, as in the following
pseudo-code:

describe SomeController do

before(:each) do
post :controller=>“authentication”, :action=>
“create”, :new_session=>{“user_name”=>“Lille”…}
end

end

I’ve scanned all the methods in the RDoc, but I cannot identify the
manner in which I may specify the controller directly. Any help?

Controller specs wrap behaviour of ActionController::TestCase, which is
designed to handle one request per example.

You could do this in request specs (integration specs in rspec-2), which
derive behaviour from rails integration tests.

HTH,
David

Lille wrote:

Hi,

I seek to authenticate and then test other routing in RSpec, but the
standard RSpec vernacular…

describe SomeController do

it “blah-blah” do
get :new

end

end

…doesn’t seem to allow me to post my login data, as in the following
pseudo-code:

describe SomeController do

before(:each) do
post :controller=>“authentication”, :action=>
“create”, :new_session=>{“user_name”=>“Lille”…}
end

end

I’ve scanned all the methods in the RDoc, but I cannot identify the
manner in which I may specify the controller directly. Any help?

Thanks,

Lille


rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users

You can’t do that with basic controller specs. What you can do is
stub a method on the controller (maybe #current_user) or set a bit of
session info like session[:user_id]. So you can set up the spec so that
a user is logged in when making the request, but you can’t make multiple
requests in a single spec. For that you’ll want the integration specs or
Cucumber.

Pat

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs