On Fri, Dec 2, 2016 at 11:57 AM, 'krfg' via Ruby on Rails: Talk
<rubyonrails-talk@googlegroups.com> wrote:

> Some of my tests would not pass if the test database was not cleared after
> the previous tests.

The important thing is that every test start from a *known state*.
The easiest state to achieve and reason about, is empty.  It also
forces you to be more explicit within your tests (or their
setup/before blocks) about any records you're adding in support of the
test.

But, if you want to start from a known *populated* state, that's a
pretty common approach too.

Either way, though, you need to clean up any changes each test makes.
With a populated start state, you can do each test in a transaction
and roll it back, which assumes you're using a DBMS that supports
that.  With an empty state, you can do that, *or* truncate the tables,
or various other options.

-Dave

-- 
Dave Aronson, consulting software developer of Codosaur.us,
PullRequestRoulette.com, Blog.Codosaur.us, and Dare2XL.com.

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/CAHxKQijfoxdJ-CkEL7ZkZVpZHLy%2B7Z8wbKuC5_i6ZctMBMCjLw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to