David Schmidt
2008-Mar-12 03:19 UTC
[rspec-users] RSpec view test for :partial with :locals?
I''m currently working on some RSpec view tests and I''m having
problems
with expect_render. Most of the expect_render''s work fine, but in one
of my views I have:
<%= render :partial => "user_cloud", :locals => {:user =>
@featured_user} %>
I see that expect_render supports ":object" or ":collection"
for the
second parameter, but this partial uses ":locals". I tried
expect_render without the second parameter and with ":locals" and it
failed to match both times. I confirmed that the partial is rendering
in the test.log. Is there a way to match this render?
On a similar note, is there a way to test that layout views are
rendered? I can test that the :partials in the layout are rendered,
but not the layout file itself.
In both of these cases I know I could do a "has_tag" and test for
something inside the layout file or partial, but I''d rather test
contents in a view test for each partial and just verify that the
partial is rendered in the view tests that render the partial.
Thank you,
David
David Chelimsky
2008-Mar-12 10:55 UTC
[rspec-users] RSpec view test for :partial with :locals?
On Wed, Mar 12, 2008 at 3:19 AM, David Schmidt <davids at tower-mt.com> wrote:> I''m currently working on some RSpec view tests and I''m having problems > with expect_render. Most of the expect_render''s work fine, but in one > of my views I have: > > <%= render :partial => "user_cloud", :locals => {:user => > @featured_user} %> > > I see that expect_render supports ":object" or ":collection" for the > second parameter, but this partial uses ":locals". I tried > expect_render without the second parameter and with ":locals" and it > failed to match both times. I confirmed that the partial is rendering > in the test.log. Is there a way to match this render?Sounds like a missing feature. Please enter a ticket at http://rspec.lighthouseapp.com.> > On a similar note, is there a way to test that layout views are > rendered?Not in view specs. Layouts are rendered by controllers, not by the views themselves, so you should do that in controller specs. Cheers, David> I can test that the :partials in the layout are rendered, > but not the layout file itself. > > In both of these cases I know I could do a "has_tag" and test for > something inside the layout file or partial, but I''d rather test > contents in a view test for each partial and just verify that the > partial is rendered in the view tests that render the partial. > > Thank you, > > David > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
Zach Dennis
2008-Mar-12 13:23 UTC
[rspec-users] RSpec view test for :partial with :locals?
Are you assigning @featured_user (ie: assigns[:featured_user]) before
you render your template? We use :locals w/o any problem, for example:
template.expect_render(:partial => ''profiles/data'',
:locals =>
{:profile => @profile}).and_return(%|<p
id=''profiles_data_partial''
/>|)
Zach
On Tue, Mar 11, 2008 at 11:19 PM, David Schmidt <davids at tower-mt.com>
wrote:> I''m currently working on some RSpec view tests and I''m
having problems
> with expect_render. Most of the expect_render''s work fine, but
in one
> of my views I have:
>
> <%= render :partial => "user_cloud", :locals => {:user
=>
> @featured_user} %>
>
> I see that expect_render supports ":object" or
":collection" for the
> second parameter, but this partial uses ":locals". I tried
> expect_render without the second parameter and with ":locals"
and it
> failed to match both times. I confirmed that the partial is rendering
> in the test.log. Is there a way to match this render?
>
> On a similar note, is there a way to test that layout views are
> rendered? I can test that the :partials in the layout are rendered,
> but not the layout file itself.
>
> In both of these cases I know I could do a "has_tag" and test
for
> something inside the layout file or partial, but I''d rather test
> contents in a view test for each partial and just verify that the
> partial is rendered in the view tests that render the partial.
>
> Thank you,
>
> David
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
--
Zach Dennis
http://www.continuousthinking.com