On 30/09/11 6:24 PM, Patrick J. Collins wrote:
Proper usage, sure, but the memoization is only within each example - not
across examples. That way you can do this:
So regarding objects persisting over multiple examples--  I was told repeatedly
by experienced RSpec peeps to not use before(:all)...

But in a case like:

before(:each) do
   @user = create_user
   create_user_item(:user =>  @user)
end

it "has an item" do
   @user.user_item.should_not be_nil
end

it "rocks the house" do
   @user.user_item.should respond_to(:rocks_the_house)
end

..etc...

It seems like this is an instance where before :all, really would shine because
it would not require records to be repeatedly created...

Do you guys feel like before(:all) is just bad because of the possibility of a
method call in one example changing the state and therefore breaking future
examples and not having it be clear as to why.. ?



Patrick J. Collins
http://collinatorstudios.com
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

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)'.

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

Reply via email to