Hello,
I have a problem similar to one mentioned in this post.
I call a partial inside another partial.
_mother.haml contains:
render :partial => "children/child"
In mother_spec.rb file I am trying to stub the render call.
Here is a working version:
=============
template.should_receive(:render)
template.stub!(:render)
render :partial => 'mother'
============
I would prefer to specify that the partial I am stubbing is "children/
child",
however the following code doesn't work for me:
===========
template.stub!(:render).with(hash_including(:partial => 'children/
child'))
template.expect_render(:partial => 'children/child')
render :partial => 'mother'
: Mock 'render_proxy' expected :render with ({:partial=>"children/
child"}) once, but received it 0 times
===========
Is it possible to stub the render call with specific partial name?
Thank you in advance,
Evgeny
On Jan 20, 5:35 pm, Bart Zonneveld <[email protected]> wrote:
> On 20-jan-2009, at 15:29, David Chelimsky wrote:
>
> > On Tue, Jan 20, 2009 at 7:44 AM, Bart Zonneveld
> > <[email protected]> wrote:
> >> Hey list,
>
> >> As a good BDDer I want to test my views in isolation.
>
> > Sort of. A *good* BDDer wants to *specify* views in isolation. Testing
> > is for testers :)
>
> You're right! I tend to talk a lot to non-programmers, and they get
> that glaze-in-the-distance look in their eyes, whenever I mention
> specifiy, spec'ing, or what have you :).
>
> >> And as a good rails
> >> programmer, I separate views into partials when needed. So, when
> >> testing my
> >> views, I want tostubout rendering of partials in my views. I'm
> >> working on
> >> upgrading an app from rails 2.1.2 to 2.2.2, using the latest rspec
> >> and
> >> rspec-rails.
>
> >> I used to throw template.stub!(:render) in a before(:each) block
> >> and be done
> >> with it
>
> > That sounds kinda risky because you could be ignoring partials that
> > get rendered that you don't want to be rendered.
>
> It is, most definately.
>
> >> , but that doesn't work anymore. I can understand why, but now I have
> >> to do something like template.stub!(:render).with(hash_including
> >> (:partial =>
> >> anything)). Except for when I'm testing a partial, then I need to
> >> replace
> >> the anything with every partial I'm rendering in my partial.
>
> >> Is this the correct way,
>
> > Seems like the only way at the moment. Wouldn't call it correct or
> > incorrect.
>
> I would call it ugly :). Not only do I have to remember the
> hash_including part, but also the anything (and not :anything).
> Conceptually, I like the template.stub!(:render). Irendera
> template, on which Istuball the renders. Whether that's risky or
> not is a different discussion.
>
> >> or is there perhaps something like
> >> template.stub_partials :only => [], :except => [] ?
>
> > Nothing like this exists. Seems like a reasonable idea. Feel free to
> > submit a feature request, or better yet, a patch to
> >http://rspec.lighthouseapp.com
>
> Will do!
>
> cheers,
> bartz
>
> _______________________________________________
> rspec-users mailing list
> [email protected]http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users