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 <zuperinfin...@gmail.com> wrote: > On 20-jan-2009, at 15:29, David Chelimsky wrote: > > > On Tue, Jan 20, 2009 at 7:44 AM, Bart Zonneveld > > <zuperinfin...@gmail.com> 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 > rspec-us...@rubyforge.orghttp://rubyforge.org/mailman/listinfo/rspec-users _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users