[rspec-users] Driving Out A View - Layouts and Sessions?

Stephen Eley sfeley at gmail.com
Fri Jun 5 12:39:56 EDT 2009


On Fri, Jun 5, 2009 at 11:40 AM, Lee<Lee.Longmore at googlemail.com> wrote:
>
> Firstly, my experiments suggest that the layout is only rendered if
> the :layout attribute is included in the call to render. Is my
> understanding correct?

Yes, and it's the way things should be.  I suggest writing a separate
spec for the layout, and testing its behavior separate from the view.
After all, you're *unit* testing here.  And the layout is a separate
unit.


> Secondly, the link_to code only executes if the session contains a
> piece of data (member id). How do I set up the session data in my view
> spec?

With the session[] object, e.g. "session[:foo] = bar".  See:
http://rspec.info/rails/writing/views.html

Whether the view (or layout) should be looking directly into the
session and making decisions from what it sees, instead of trusting
what it gets from the controller, is another question.  "Is there a
current user?" is _probably_ closer to your actual business rules than
"Does the session contain a member id?"



-- 
Have Fun,
   Steve Eley (sfeley at gmail.com)
   ESCAPE POD - The Science Fiction Podcast Magazine
   http://www.escapepod.org


More information about the rspec-users mailing list