У меня есть класс модульного тестирования, который требует довольно обширной настройки базы данных, прежде чем можно будет запустить отдельные методы тестирования. Эта настройка занимает много времени: по причинам, которые, мы надеемся, не имеют отношения к рассматриваемому вопросу, мне нужно заполнять БД программно, а не из дампа SQL.
У меня проблема с разбором. Как я могу легко откатить все изменения, сделанные на этапе настройки БД?
В настоящее время я использую поддержку Hibernate + Spring Transactional Testing, так что мои отдельные методы тестирования заключены в транзакции.
Одним из решений было бы выполнить настройку БД в каждом методе тестирования, чтобы настройка БД автоматически откатывалась. Однако методы тестирования будут выполняться вечно, поскольку каждому методу потребуется переподготовка базы данных.
Есть еще идеи? По сути, я ищу способ запустить мою настройку БД, запустить мои отдельные тесты (каждый из которых заключен в транзакцию, откат которой выполняется после выполнения), а затем откатить первоначальную настройку БД. Есть какие-нибудь идеи по поводу того, чтобы это работало в моде Hibernate / Spring / Junit? Есть ли в Hibernate эквивалентная команда «отбросить все таблицы»?