Marcelo de Moraes Serpa
2011-Feb-08 17:49 UTC
[rspec-users] Why use DatabaseCleaner with rSpec?
Hi list, I''ve used DatabaseCleaner in the past, but only when using Cucumber and Selenium (or Steak + Celerity) since turning on transactional_fixtures would prevent the data being accessible from app-server that is also triggered for the tests. This works fine, and is a de-facto solution for this problem. I don''t see why I would want to use DatabaseCleaner with rspec though, since everything is in the same process, transactional_fixtures could do fine, in theory. Or not? Marcelo.
On 2/8/11 10:49 AM, Marcelo de Moraes Serpa wrote:> Hi list, > > I''ve used DatabaseCleaner in the past, but only when using Cucumber > and Selenium (or Steak + Celerity) since turning on > transactional_fixtures would prevent the data being accessible from > app-server that is also triggered for the tests. This works fine, and > is a de-facto solution for this problem. > > I don''t see why I would want to use DatabaseCleaner with rspec though, > since everything is in the same process, transactional_fixtures could > do fine, in theory. Or not? > > Marcelo.If you are using RSpec with Rails and have a *single* ActiveRecord connection for your app then you do not need to use DatabaseCleaner and the built in transactional_fixtures method will do just great. Once you need to either a) use a non-AR DB (e.g. mongodb, couchdb) b) have an out of process testing scenario (e.g. selenium) c) clean multiple connections (with an ActiveRecord DB or otherwise) or d) are not testing a Rails app (where the transactional_fixtures come from) then using DatabaseCleaner will make your life easier. HTH, Ben