Я пишу тестовый пример JUnit, который проверяет метод HibernateEnity findBy
. Entity получает это подключение к базе данных из управляемых источников данных tomcat.
JUnit тест:Запустите тестовый пример JUnit в контейнере tomcat
MyHibernateEntity entity = new MyHibernateEntity();
expectedResult = entity.findByFK(dummyFK);
Как я могу запустить TestCase внутри контейнера Tomcat? У нас нет других компонентов Java EE в контейнере, кроме источников данных. Вот почему мне нужна структура с минимальными отпечатками. До сих пор я пробовал следующие:
- Arquillian - слишком сложный для реализации. Много конфигурации.
- Кактус - Он имеет 3 класса для расширения.
ServletTestCase, JspTestCase and FilterTestCase
. Не уверен, какой из них применим в моем случае. DBUnit - Читайте об этом в
JUnit in Action
. Я не знаю, применимо ли это для источников данных контейнера.Примечание: Я понимаю, что этот тестовый пример не является чистым модульным тестированием. Я представляю JUnit в унаследованной системе и не имею времени для решения проблем интеграции.
Что именно мешает вам запускать тесты JUnit таким же образом, как [зимуют учебники] (http://docs.jboss.org/ hibernate/orm/4.1/quickstart/en-US/html/ch04.html) запущены? Должно быть возможно настроить источники данных вне tomcat. И, surley, классы сущностей не имеют зависимости от сервлетов или других вещей J2EE, не так ли? –
Класс Entity получает соединение db из класса SessionHelper. Источники данных определены в контейнере tomcat и не могут быть доступны из стороны контейнера. У вас возникла проблема? –
И SessionHelper - это синглтон с методом getInstance()? Если это так, я полностью понимаю. Но не стоило бы ли настраивать SessionHelper в этом случае? –