[rspec-users] Test data problem (in general and with acts_as_tree)

Max Williams toastkid.williams at gmail.com
Tue Feb 26 09:08:30 EST 2008

On 26/02/2008, David Chelimsky <dchelimsky at gmail.com> wrote:
> On Tue, Feb 26, 2008 at 7:39 AM, Max Williams
> <toastkid.williams at gmail.com> wrote:
> This does not happen for you implicitly when you use before(:all)
> because there is no mechanism for running a group of examples in a
> transaction.

ah...i see.  I didn't know about that last bit. :)

> My problem, though, is that the data is left over from the last time (in
> > fact all previous times) that i ran the spec file, where i thought that
> it
> > was cleared out.  Do i need to explicitly tell the database to clear all
> the
> > records in an 'after' block?
> Yes.  If you want to use before(:all) to set up data, you need to use
> after(:all) to clean it up explicitly.
> Please beware that this approach is extremely error prone over time.
> If you ever introduce a side effect (intentionally or accidentally)
> that modifies the data, you're going to look at the spec, see the data
> you're setting up and incorrectly think that that's the data every
> example is using. It is much, much safer (and more sane) to use
> before(:each) even though it may slow things down a bit.

Gotcha.  Thanks!

> David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/rspec-users/attachments/20080226/070b194b/attachment-0001.html 

More information about the rspec-users mailing list