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

Scott Taylor mailing_lists at railsnewbie.com
Fri Sep 28 17:11:04 EDT 2007

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  

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 = {})
       :post => create_post

# 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!



More information about the rspec-users mailing list