Я использую DbUnit вместе с Unitils, который прекрасно работает большую часть времени.
Сегодня я обнаружил странную проблему.
Ситуация:
- Я использую Hibernate, и у меня есть идентификатор с генератором "increment":
<id name="Id">
<generator class="increment"/>
</id>
- Я готовлю тестовый набор данных, где максимальный идентификатор равен 5.
- Я использую стратегию загрузки с чистой вставкой.
- У меня есть два метода тестирования
test1
и test2
, каждый из которых добавляет одну строку в эту таблицу.
- После метода
test1
вновь добавленная строка имеет идентификатор = 6.
- После метода
test2
вновь созданная строка имеет id = 7.
Это все хорошо, и я понимаю, почему это так. Это проблема с точки зрения обслуживания, хотя. Если я когда-нибудь добавлю третий метод тестирования между ними, метод test2
внезапно завершится неудачей, даже если ничего не изменилось, просто потому, что строка получит другой идентификатор.
Можно ли в любом случае заставить DbUnit или Hibernate вычислять следующее значение id перед каждым методом тестирования?