[rspec-users] Access controller object in controller macro

Nasir Jamal nas35_in at yahoo.com
Wed Apr 18 08:59:09 UTC 2012


Hi Justin

Yes, the specs are in app_root/spec/controllers/ and we running the specs from app_root. We are including the macros like so:

RSpec.configure do |config|
    config.include(ControllerMacros, :type => :controller)
end

Kind regards,

Nas



________________________________
 From: Justin Ko <jko170 at gmail.com>
To: Nasir Jamal <nas35_in at yahoo.com>; rspec-users <rspec-users at rubyforge.org> 
Sent: Wednesday, 18 April 2012, 9:34
Subject: Re: [rspec-users] Access controller object in controller macro
 



On Apr 17, 2012, at 1:30 PM, Nasir Jamal wrote:


>Hi
>
>We have just upgraded our Rails 2.3.11 app to Rails 3.0.0 and Rspec 1.3.2 to 2.6. We are having two problems with rspec currently and any help would be great.
>
>1) We have some controller macros where we have been using the controller object, session hash, response, etc. in different methods for e.g.
>
>module ControllerMacros
>  def imaginary_method_with_example_calls
>     # in actual code different methods call one of the below, this is just an example of things not working
>    controller.stubs(:method)
>    controller.class.skip_before_filter(:name)
>    session[:user_id] = user.id
>    response.something
>  end
>end
>
>But now after upgrading to Rspec 2.6 they do not work
 and calling controller just returns nil and hence undefined method 'skip_before_filter' for NilClass error. I did google but found nothing regarding this.
>
>2) Changing 'request.request_uri' to 'request.full_path' raises the following error when running rspec
>NoMethodError:
>       undefined method `full_path' for #<ActionController::TestRequest:0x1bfa46f8>
>
>Any help / suggestion would be really helpful.
>
>Kind regards,
>
>Nas 
>_______________________________________________
>rspec-users mailing list
>rspec-users at rubyforge.org
>http://rubyforge.org/mailman/listinfo/rspec-users

I assume your app directory looks like this?

app_root/spec/controllers/my_controller_spec.rb

And you are running the specs from the *app_root*?

How are you including this module?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20120418/54b92eff/attachment.html>


More information about the rspec-users mailing list