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 => "[EMAIL PROTECTED]" ) etc 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 > [email protected] > http://rubyforge.org/mailman/listinfo/rspec-users _______________________________________________ rspec-users mailing list [email protected] http://rubyforge.org/mailman/listinfo/rspec-users
