[rspec-users] testing instance variables that are set inside views

David Chelimsky dchelimsky at gmail.com
Wed Jul 4 11:41:59 EDT 2007


On 7/4/07, Patrick Ritchie <pritchie at videotron.ca> wrote:
>
>  aslak hellesoy wrote:
>  On 7/3/07, Patrick Ritchie <pritchie at videotron.ca> wrote:
>
>
>  Hi,
>
>  I think @header may not be an implementation detail in this case.
>
>  If your layout looks like this:
>
>  ...
>  <head>
>  <title><%= @header || 'Default Title' %></title>
>  </head>
>  ...
>
>  And the view we are testing looks like this:
>
>  ...
>  <h1><%= @header = 'Specific Title'></h1>
>  ...
>
>  Then setting @header is an essential behavior for the view spec.
>
>  Or am I missing something?
>
>
>  Before I can answer about how to test this with RSpec, I need to
> understand what's going on in the code. Isn't the head part of the
> layout evaluated before the body? If that's the case, what's the point
> of assigning the @header variable in the view? It wouldn't change the
> title anyway
>  The layout is evaluated after the view so the above code is a useful way to
> include some piece of data in the head without having to initialize it in
> the controller. Very handy for things like head/title or view specific
> onload js etc...

Correct me if I'm wrong, but it seems to me that the behavior you're
interested in is that the right thing shows up in the title:

response.should have_tag('title', 'whatever I am expecting')

Am I missing something?


>
>  Cheers!
>  Patrick
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list