On Feb 22, 2010, at 6:07 PM, Rick DeNatale wrote:

> I thought that it might be worth starting a discussion about the best
> approaches to deal with spec'ing what's becoming more and more common
> in apps using active record.
> 
> It started with named scopes, now we have arel, and the old find calls
> with parameters are being deprecated.
> 
> When I watched Ryan Bate's latest opus
> http://railscasts.com/episodes/202-active-record-queries-in-rails-3
> this morning I decided it might be good to bring my concerns up.
> 
> The problem of course is that we're going to get used to writing more
> code like this:
> 
> Article.where("published_at <= ?", Time.now).includes(:comments)
> 
>> From one aspect, I find all this very nice. It makes writing queries
> easier and much more readable.
> 
> On the other hand these are the kind of "train wreck" violations of
> the "strong suggestion of Demeter" which makes mocking and stubbing
> difficult among other things.
> 
> Thoughts?

I haven't spent enough time with it yet to know, but I suspect that surface 
mocking (what is usually called stubbing in this community) is going to get 
harder with the demeter violations.

OTOH, I guess as there is more structure to a query, it might be easier to 
create a more general & dynamic mock library for it - something like lafcadio's 
mocking library or fakefs.  With a mocking library like that out there, we'll 
have faster test suites.  I'm hoping that it totally obliviates the need for a 
library like guillotine (http://github.com/smtlaissezfaire/guillotine). 

Scott


> 
> -- 
> Rick DeNatale
> 
> Blog: http://talklikeaduck.denhaven2.com/
> Twitter: http://twitter.com/RickDeNatale
> WWR: http://www.workingwithrails.com/person/9021-rick-denatale
> LinkedIn: http://www.linkedin.com/in/rickdenatale
> _______________________________________________
> 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

Reply via email to