2013-03-21 6 views
1

Я пишу тестовый пример JUnit, который проверяет метод HibernateEnity findBy. Entity получает это подключение к базе данных из управляемых источников данных tomcat.
JUnit тест:Запустите тестовый пример JUnit в контейнере tomcat

MyHibernateEntity entity = new MyHibernateEntity(); 

expectedResult = entity.findByFK(dummyFK); 

Как я могу запустить TestCase внутри контейнера Tomcat? У нас нет других компонентов Java EE в контейнере, кроме источников данных. Вот почему мне нужна структура с минимальными отпечатками. До сих пор я пробовал следующие:

  1. Arquillian - слишком сложный для реализации. Много конфигурации.
  2. Кактус - Он имеет 3 класса для расширения. ServletTestCase, JspTestCase and FilterTestCase. Не уверен, какой из них применим в моем случае.
  3. DBUnit - Читайте об этом в JUnit in Action. Я не знаю, применимо ли это для источников данных контейнера.

    Примечание: Я понимаю, что этот тестовый пример не является чистым модульным тестированием. Я представляю JUnit в унаследованной системе и не имею времени для решения проблем интеграции.

+0

Что именно мешает вам запускать тесты JUnit таким же образом, как [зимуют учебники] (http://docs.jboss.org/ hibernate/orm/4.1/quickstart/en-US/html/ch04.html) запущены? Должно быть возможно настроить источники данных вне tomcat. И, surley, классы сущностей не имеют зависимости от сервлетов или других вещей J2EE, не так ли? –

+0

Класс Entity получает соединение db из класса SessionHelper. Источники данных определены в контейнере tomcat и не могут быть доступны из стороны контейнера. У вас возникла проблема? –

+0

И SessionHelper - это синглтон с методом getInstance()? Если это так, я полностью понимаю. Но не стоило бы ли настраивать SessionHelper в этом случае? –

ответ

0

Возможно, вы можете просто издеваться над своими источниками данных?

https://code.google.com/p/mockito/

+0

Если вы просмотрите мои заметки. Я действительно хочу рассмеяться и укусить предметы. –

0

С TomcatJNDI вы можете получить доступ ко всем ресурсам JNDI внутри ваших классов, если они будут работать в Tomcat Server. Для того, чтобы ресурсы, доступные через JNDI поиска вы должны написать код, как

TomcatJNDI tomcatJNDI = new TomcatJNDI(); 
tomcatJNDI.processContextXml(contextXmlFile); 
tomcatJNDI.start(); 
Смежные вопросы