[rspec-users] stale records with integration testing?

David Chelimsky dchelimsky at gmail.com
Tue Feb 14 00:35:07 EST 2012


On Mon, Feb 13, 2012 at 9:04 PM, Justin Ko <jko170 at gmail.com> wrote:
>
> On Feb 13, 2012, at 1:16 PM, Patrick J. Collins wrote:
>
>> Hi,
>>
>> I was writing an integration test for my user signup form (with
>> capybara), and found that my test was failing due to a validation error:
>> "email is already taken".  I'm a bit confused because I thought when I
>> run "rspec spec/some_spec.rb", the test database would be wiped clear?
>>
>> Is that not the case?
>>
>> Patrick J. Collins
>> http://collinatorstudios.com
>>
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>
> You basically have two options to ensure a clean database:
>
> 1.) Transactional examples:
>
> RSpec.configuration.use_transactional_examples = true
>
> 2.) DatabaseCleaner:
>
> RSpec.configure do |config|
>  config.before { DatabaseCleaner.start }
>  config.after { DatabaseCleaner.clean }
> end
>
> Look into what those do. Let us know if you get stuck.

What Justin says is true if you're running in the same process. If
you're using Capybara to run examples in-browser, then option 2 will
work for you, but option 1 will not.


More information about the rspec-users mailing list