Как правильно провести тестирование базы данных (TDD) в Rails 3 с помощью MongoDB и Mongoid

Как можно было бы написать правильное модульное тестирование (и интеграционное тестирование в этом отношении) с использованием MongoDB через Mongoid on Rails?

Я спрашиваю , потому что в отличие от использования, скажем, SQLite3, даже при запуске тестов все, что я делаю, сохраняется. Итак, на данный момент я пишу тест создания, а затем вручную удаляю все, что делаю. Но это' становится раздражающим и даже сложным для интеграционного тестирования.

Пример того, что я делаю:

before(:each) do
  @user = User.create!(@attr)
end

after(:each) do
  # MongoDB is not a transactional DB, so added objects (create) during tests can't be rollbacked
  # checking for the existance of a similar object with exact :name and :email (regex make it case insensitive)
  cleanup = User.where(:name => "Example User", :email => /^user@example.com/i)
  cleanup.destroy unless cleanup.nil?
end

Есть идеи, как сделать MongoDB нестабильным во время тестирования? (Я даже не могу запустить консоль в режиме песочницы, потому что для использования Mongoid мне пришлось деактивировать Active Record).

19
задан Sergio Tulentsev 9 May 2012 в 18:23
поделиться