Если вы используете Maven или даже не используете, это может быть полезно . Типичный способ проверки транзакционной семантики - использование базы данных в памяти, такой как H2 или HSQLDB (Hypersonic). Таким образом, в действительности вы тестируете внутри очень легкого контейнера. Hibernate может быть настроен как ваша реализация JPA. Он сохранит данные в полнофункциональной реляционной базе данных, работающей полностью в оперативной памяти.
Что касается светильников, существует довольно много вариантов, одним из наиболее популярных из которых является DbUnit , но, по моему опыту, они сложнее, чем стоят. Я предпочитаю создавать свои собственные классы "строитель", которые устанавливают мои тесты с необходимыми объектами модели. Мне нравится, когда «сеттеры» конфигурации возвращают экземпляр компоновщика, чтобы я мог связывать вызовы вместе так:
this.emf = Persistence.createEntityManagerFactory ("hibernate-hsqldb");
Widget widget = new WidgetBuilder(this.emf).setAnOption(4).setAnother("test").build();
Обычно emf
создается в методе setUp и закрывается в tearDown. Это полностью инициализирует базу данных между тестами.