Использование Sequel в тесте Rails

У меня есть модульный тест в Rails, модель, которую он тестирует, использует Sequel по нашим собственным внутренним причинам, но тестовые данные создаются с использованием factory_girl, который, кажется, заключает весь тест в транзакцию activerecord. Я могу использовать self.use_transactional_fixtures = false, но мне было интересно, есть ли способ не оставлять тестовые данные в моей базе данных после завершения моего теста.


person trobrock    schedule 23.05.2011    source источник


Ответы (1)


Я не уверен, какую тестовую библиотеку вы используете. Для RSpec 1 следующий пример запускает каждый пример спецификации в отдельной транзакции:

class Spec::Example::ExampleGroup
  def execute(*args, &block)
    x = nil
    Sequel::Model.db.transaction{x = super(*args, &block); raise Sequel::Error::Rollback}
    x
  end
end

Для RSpec 2 вы можете использовать фильтр вокруг, чтобы добиться того же. Я не уверен, как это сделать в тесте/модуле, вам, вероятно, нужно переопределить Test::Unit::TestCase#run.

person Jeremy Evans    schedule 24.05.2011