My pair and I have written a bunch of these helpers. I'll post what we
have later, perhaps it will be a starting point,

Zach

On Fri, Mar 14, 2008 at 8:20 AM, Zach Moazeni <[EMAIL PROTECTED]> wrote:
> This hints at another extension I've wanted to write for us for a while.
>
> Common html selector strings, Labels, input fields, textareas, forms, links,
> etc
>
> Really just rolling up something like:
>
>
> response.should
> have_tag("input[type=text][name=?][value=?][id=company-name]",
> "user[company_name]", "Some Company Inc.")
>
> into something like:
>
> respose.should have_text_input(:user, :company_name, :id => "company-name",
> "Some Company Inc.")
>
> It feels closer to the Rails view helpers. Not a huge win, but we have so
> many selectors than abstracting up one would make our specs more readable.
>
> Damn "To Code" list...
>
> -Zach
>
> Begin forwarded message:
>
> From: Zach Moazeni <[EMAIL PROTECTED]>
> Date: March 13, 2008 1:46:34 PM GMT-04:00
> To: rspec-users <rspec-users@rubyforge.org>
> Subject: Re: [rspec-users] Problems with form_for and partials
>
>
>
>
> We've been going down this route:
>
>
> http://pastie.caboo.se/165265
>
> We use mocha for our mocking and originally we mocked out the form builder,
> but the specs felt crufty. We then converted to instantiating the
> FormBuilder and passing it to partials that needed it.
>
> For the views that send in the FormBuilder, we use the #with passing a block
> and assert the "is_a?" inside (I'm still not too keen on using the param
> helper/matchers). This looks a bit more bulky (and is kinda ugly in having
> assertions in a setup) but it really greased the wheels for us.
>
> We ended up preferring to assert the presence of html vs expectations on a
> FormBuilder stub, and it made the view specs feel a bit more natural.
>
> One last note: we hacked the #render in rspec_on_rails to output the
> contents of a partial (which is why the template stubbing the render returns
> "form partial") and we assert the presence of that text in the response.
> Helps catch those rascally <% %> instead of <%= %>. I've been meaning to
> form together a patch and submit a proper extension, but it's as time
> allows.
>
> Perhaps a bit more than you were asking for, but I hope this helps
>
> -Zach
>
>
>
> On Mar 13, 2008, at 1:25 PM, Jonathan Linowes wrote:
> Thank you!
>
> for the record, I refactored my code so the view does a form_for, and
> any partials that render fields with the form builder does its own
> fields_for. This makes the design cleaner and more testable. However,
> I'm not sure if there's any performance cost in doing it this way
> instead of passing the form builder around, anyone?
>
> On Mar 13, 2008, at 5:05 AM, David Chelimsky wrote:
>
> On Wed, Mar 12, 2008 at 10:19 PM, Jonathan Linowes
> <[EMAIL PROTECTED]> wrote:
>
>
>
>  On Mar 12, 2008, at 5:47 PM, David Chelimsky wrote:
>
>
>
> On Wed, Mar 12, 2008 at 9:43 PM, Zach Dennis
>
> <[EMAIL PROTECTED]> wrote:
>
>
> You can use mocha parameter matching to match on "anything" where
>
>
> your
>
>
>  form builder would be passed in. You could also use Mocha's
>
>
> "kind_of"
>
>
>  parameter matcher to ensure that what you expect is a FormBuilder
>
>
>  object.
>
>
>
>
>
>   Another way to do this is to not pass in your form builder,
>
>
> but the
>
>
>  object needed, and then use fields_for inside the partial itself.
>
>
> This
>
>
>  works well in some scenarios.
>
>
>
> You could also use rspec's parameter matching, which also supports
>
> "anything" but not "kind_of" ;)
>
>
>
>  how would i use that in stub_render? eg if my view has
>
>         <%= render :partial => 'pages/foo', :layout =>
>
> 'bar', :locals =>
>
>  { :f => f } %>
>
>
>
>  what's the stub?
>
> As of 1.1.3:
>
>   stub_render(:partial => 'pages/foo', :layout => 'bar', :locals =>
> {:f => })
>
> There is now, in trunk, hash_including matcher, so you *should* (I
> haven't tried yet) be able to do this:
>
>   stub_render(hash_including(:locals => {:f => }))
>
> That keeps it a bit less brittle, as the previous version will fail if
> you add anything else to the actual render call this won't fail.
>
> Cheers,
> David
>
>
>
>
>
>
>
>
>
>  _______________________________________________
>
>  rspec-users mailing list
>
>  rspec-users@rubyforge.org
>
>  http://rubyforge.org/mailman/listinfo/rspec-users
>
>
> _______________________________________________
> rspec-users mailing list
> rspec-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
> _______________________________________________
> rspec-users mailing list
> rspec-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
>
>
> _______________________________________________
>  rspec-users mailing list
>  rspec-users@rubyforge.org
>  http://rubyforge.org/mailman/listinfo/rspec-users
>



-- 
Zach Dennis
http://www.continuousthinking.com
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to