[rspec-users] Testing a before_filter with a Rails.env condition
David Chelimsky
dchelimsky at gmail.com
Mon Aug 29 22:34:31 EDT 2011
On Aug 29, 2011, at 6:09 PM, Shane Mingins wrote:
> Hi
>
> We have the occasional ApplicationController before_filter that is conditioned by the Rails.env and we like the following style:
>
> before_filter :check_for_something if Rails.env == 'production'
This approach won't work because this line is eval'd once and only once when the file is loaded.
>
> And wish to spec this in an ApplicationController spec using an anonymous controller (e.g. http://relishapp.com/rspec/rspec-rails/docs/controller-specs/anonymous-controller)
>
> Q. Just wondering how we can Rails.stub(:env).and_return('production') to trigger the before_filter?
>
> As it stands we have moved the conditional down into the method and stub in the before(:each)
>
> e.g.
>
> before_filter :check_for_something
>
> def check_for_something
> if Rails.env == 'production'
> ...
> end
> end
>
> before(:each) do
> Rails.stub(:env).and_return('production')
> end
This approach works because Rails.env inside the check_for_something method is eval'd each time the method is called.
HTH,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20110829/6b9572bd/attachment.html>
More information about the rspec-users
mailing list