Forum: RSpec How to spec two lines in application_controller.rb

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Hunt J. (Guest)
on 2009-05-26 18:34
(Received via mailing list)
I need to spec the following lines:

  helper :all # include all helpers, all the time
  protect_from_forgery # See
ActionController::RequestForgeryProtection for detail

Can anybody give me a hint?

I create "application_controller_spec.rb" and now what?

Andrew T. (Guest)
on 2009-05-26 19:17
(Received via mailing list)
On Tue, May 26, 2009 at 4:32 PM, Hunt J. <removed_email_address@domain.invalid>
> Jon
You shouldn't need to spec those two lines specifically.
What you want to do is spec the behaviour.

So if you want a particular helper method to be available, write a
spec that relies on that helper method (in another controller because
they all use ApplicationController). If you then take out helper :all,
your spec may fail (don't know, never tried)
If it doesn't, well then you don't need the line :-)

For protect_from_forgery, again spec the behaviour you expect (again,
in a different controller spec)
If you take out the line and your code still works, you don't need the
If you take it out and the spec breaks, you know you've tested the
behaviour you want, and not a line!

I never spec either of these lines because their behaviour is tested
in the Rails code. I am only concerned with testing my applications
and the behaviour I want out of them.

As an aside, if you're concerned about code coverage, both lines
should execute with every controller test as they must execute while
creating the ApplicationController class.


Andrew T. - The SIMPLE way to manage your savings
Fernando P. (Guest)
on 2009-05-26 20:52
Hunt J. wrote:
> I need to spec the following lines:
No you don't. They are thoroughly tested in the Rails framework and you
didn't add any behavior to them, so reading them makes it immediately
clear what they are doing.

Don't worry without specing these 2 lines you'll still get your 100%
This topic is locked and can not be replied to.