HSQLDB независим для модульного тестирования - PullRequest
1 голос
/ 11 февраля 2012

Я использую HSQLDB для модульного тестирования JUnit набора hibernate классов и запросов.В каждом вызове setUp() каждого теста я инициализирую базу данных hsql в памяти (через hibernate), используя имя класса теста и контрольный пример для составления строки соединения для экземпляра db в памяти.Но во втором тесте последовательность идентификаторов продолжается с первого теста.Я хочу, чтобы мои тесты были абсолютно независимыми, поэтому меня это удивляет.Я использую @GeneratedValue(strategy = GenerationType.AUTO) для своих идентификаторов.Моя предполагаемая база данных для разработки и производства - mysql или postgresql, но это не должно иметь значения.

Обновление Я пробовал меньший тестовый пример, и оказалось, что я ошибался.Я создал больше сущностей в тесте secodn, что привело к другому идентификатору.Мой плохо целиком!

1 Ответ

0 голосов
/ 11 февраля 2012

Возможно, база данных HSQLDB Memory будет удалена только после завершения работы приложения.

Вы можете проверять транзакцию перед каждым тестовым классом и откатывать ее по окончании тестового класса.

...