[rspec-users] do I use mocking (vs fixtures) for methods that produce results based on non-trivial SQL queries
Scott Taylor
mailing_lists at railsnewbie.com
Fri Sep 5 11:09:45 EDT 2008
On Sep 5, 2008, at 10:55 AM, Pat Maddox wrote:
>> time. Just do the math: If one database test takes 0.2 sec (a
>> realistic
>> figure), then 5 will take 1 sec, at 1000 over 3 minutes, and at
>> 2000 over 6
>> minutes. This is starting to get into "time for a coffee/cigarette/
>> juggling
>> what have you" breaks. So - either you end up very hyped up on
>> coffee not
>> doing much work, or you don't run your test suite very often, which
>> leads to
>> legitimate bugs which can be solved. (At one point I had actually
>> deployed
>> code into production which had a serious bug. This all could have
>> been
>> avoided because the test suite *was failing*, but I had gotten into
>> the
>> habit of not running it because it was too expensive).
>
> There's a couple things you can do to help with this:
>
> * Split slow tests into another dir and run them separately from your
> fast suite. Keep rspactor on your fast suite and run the slow tests
> before checkin
>
> * Use a CI server
>
Yes, most certainly. But the db tests •still* aren't cheap, meaning
you'll need to wait for the CI server to run them there is a failure,
or wait before checking in.
Also - have you found a CI server that is working with git?
>
>> I've been working hard on solving this issue by building a SQL
>> parser in
>> treetop, and hope anyone who is interested will join me (just let
>> me know if
>> you are interested and I'll make the project publicly viewable on
>> github).
>
> http://github.com/nkallen/arel/tree/master might also be interesting
> to you.
Hmm..Well, that's interesting, although I think that project, like so
many others, is *generating* SQL, not parsing it, correct?
I've made my sql parser public, and here is is if anyone wants to take
a gander (although it most certainly is still a work in progress):
http://github.com/smtlaissezfaire/guillotine/tree/master
Scott
More information about the rspec-users
mailing list