Существует независимый от базы данных способ сделать это, если вы используете Spring вместе с Hibernate.
Убедитесь, что контекст приложения будет создан / уничтожен до / после каждого метода тестирования:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath*:application-context-test.xml"})
@TestExecutionListeners({DirtiesContextTestExecutionListener.class,
DependencyInjectionTestExecutionListener.class})
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
public abstract class AbstractTest {
}
Поручить Hibernate автоматически создать схему при запуске и удалить схему при завершении работы:
hibernate.hbm2ddl.auto = create-drop
Теперь перед каждым тестом
- создается контекст приложения и вводятся необходимые пружинные бины (spring)
- структуры базы данных созданы (в спящем режиме)
- import.sql выполняется, если присутствует (в спящем режиме)
и после каждого теста
- контекст приложения уничтожен (весна)
- схема базы данных удалена (спящий режим).
Если вы используете транзакции, вы можете добавить TransactionalTestExecutionListener
.