[rspec-users] How do I best setup data for Story Runner?

Jonathan Linowes jonathan at parkerhill.com
Sat Sep 29 00:42:22 EDT 2007

yes,  i appreciate all the smartness built into it.

I wonder if this idea could be extended to generate mocks, eg for my  
controller specs

user = mock_user( :email => "foo at example.com" )

not sure how far you could go with this, eg stubbing basic stuff  
like .find
Just a thought

On Sep 28, 2007, at 5:11 PM, Scott Taylor wrote:

> On Sep 28, 2007, at 1:20 PM, Jonathan Linowes wrote:
>> Scott,
>> Thanks for the plug-in, http://thmadb.com/public_svn/plugins/
>> fixture_replacement
>> I've started using it, replacing my ad hoc factory methods
>> And I like the idea of putting the factory in db/
> Thanks for trying it out.  I'd love to hear any feedback, or anything
> that you think should be changed.
>> btw, for the record, while the Dan Manges blog was posted Aug 07, the
>> first time I saw this technique is as a protected create_user method
>> in the acts_as_authenticated plugin test/user_test.rb (although not
>> to replace fixtures but to test against them :)
> Yeah, I'm sure I've seen that too - so maybe I stole one of the ideas
> from there, as well.  (Actually, I think I got it from topfunky (the
> TDD peepcode), who in turn got it from technoweenie - Completely
> forgot about til' now.  It's funny how good ideas can become
> unconscious like that...)
> The only really cool thing about the plugin is that it uses lambdas
> so that extra associations aren't created.  Plus, it dries up
> the .create! and merge() that needs to be repeated over and over
> again (trust me - this will get tiring if you have something like 30
> models).
> Regarding the lambdas: With the Dan Manges factory, if I do the
> following, I end up with two posts (not one):
> def create_comment(hash = {})
>    Comment.create!(
>      {
>        :post => create_post
>      }.merge(hash)
>    )
> end
> # this yield one associated post (as expected)
> comment = create_comment
> # this yields an associated post, with an extra one which I don't
> care about (and which isn't associated)
> post = create_post
> comment = create_comment(:post => post)
> And this is because Ruby isn't lazily evaluated.  So if you end up
> using the Dan Manges method, beware!
> Scott
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users

More information about the rspec-users mailing list