У меня есть модульный тест в Rails, модель, которую он тестирует, использует Sequel по нашим собственным внутренним причинам, но тестовые данные создаются с использованием factory_girl, который, кажется, заключает весь тест в транзакцию activerecord. Я могу использовать self.use_transactional_fixtures = false
, но мне было интересно, есть ли способ не оставлять тестовые данные в моей базе данных после завершения моего теста.
Использование Sequel в тесте Rails
Ответы (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