On 1 Oct 2011, at 00:36, Srushti Ambekallu wrote:

> On 30/09/11 6:24 PM, Patrick J. Collins wrote:
>> So regarding objects persisting over multiple examples--  I was told 
>> repeatedly
>> by experienced RSpec peeps to not use before(:all)…
> 
> I don't know if object creation (including the corresponding database calls) 
> are really expensive enough that I would worry about optimising that (unless 
> you're getting it anyway, without losing anything in the process, like with 
> 'let'). Occasionally, for some reason I'll end up using a 'before(:all)' for 
> one isolated scenario, but inevitably a few months down the line, I'll end up 
> wasting a couple of hours on a weird failing test, until I look closely 
> enough to notice the ":all".
> 
> So, unless I'm doing something that's prohibitively expensive (I haven't 
> found anything that would qualify in any of my projects) I'm not likely to 
> create anything in a 'before(:all)'.

I'll second that. It's better to feel the pain of the multiple database hits 
and refactor it out in the code (can you separate more of the logic and 
persistence?), than try to optimise the test run by introducing shared state. 
In the long run, the former will give you many faster test runs through better 
design, where as the latter will give you a few faster tests now at the risk of 
- as Srushti points out - stepping on a landmine later.

HTH

Ash

-- 
http://www.patchspace.co.uk/
http://www.linkedin.com/in/ashmoran

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to