Автоматический тест, утверждающий, что свойство действительно лениво в спящем режиме - PullRequest
0 голосов
/ 27 сентября 2010

Мне нужно добавить в свойство параметр lazy = true, и я добавил задачу ant, чтобы внедрить класс, чтобы позволить hibernate сделать его ленивым в моем pom.

есть ли способ проверить, что теперь это свойство находится в режиме ожидания во время выполнения, не наблюдая за выводом консоли hibernate sql ?Я имею в виду с модульным тестированием (я использую весенний тест с junit).Я не хочу проверять, присутствует ли ленивый атрибут в отображении xml.Это само по себе не гарантирует, что taht hibernate будет относиться к нему как к ленивому свойству.

Мне нужен тест junit, чтобы быть уверенным, что эта ошибка, обнаруженная тестером, больше не появится в будущем (я не одинокв проекте).

Я придерживаюсь (лучшей?) Практики, согласно которой каждый нетривиальный баг должен иметь автоматический тест, чтобы предотвратить его возвращение. (Кстати, я взял идею из тестов Spring Framework)

Ответы [ 3 ]

1 голос
/ 10 февраля 2011

Я нашел другое решение:
org.hibernate.Hibernate.isPropertyInitialized(pojo, propertyName) check if the property is initialized..

Хитрость силы LazyInitializationException - закрыть сеанс, который вызовет проблемы для другого теста, и снова открыть один, если этот был предоставлен.

1 голос
/ 20 июня 2012

Нам не удалось использовать isPropertyInitialized(entity, "property"), но isInitialized(entity.getProperty()) хорошо работает

1 голос
/ 27 сентября 2010

Вы можете загрузить объект, закрыть сеанс и затем утверждать, что LazyInitializationException выбрасывается при доступе к свойству.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...