2015-05-11 2 views
7

Я делаю свой первый проект Java EE, и я хочу подготовить тест. Я искал и обнаружил, что с EJB 3.1 существует возможность использования встроенного EJB-контейнера для тестирования бизнес-уровня. Я использую WildFly, но я не нашел, как настроить встроенный контейнер.WildFly: Как протестировать EJB с помощью встроенного контейнера?

Итак, как правильно настроить встроенный контейнер и проверить EJBs 3.1+ с помощью WildFly?

Я ценю любую помощь!

+1

Вы ищете [Arquillian] (http://www.arquillian.org), платформу интеграции тестирования Wildfly? Или вы ищете то, что обсуждалось в вопросе Stackoverflow о [встраивании контейнера EJB в модульные тесты] (http://stackoverflow.com/questions/24310912/arquillian-vs-ejb-embeddable-container)? – fxnn

+0

Привет @fxnn, это был бы второй вариант, я нашел много сообщений с одним и тем же кодом, но кажется, что он имеет другую настройку в зависимости от того, какой вы используете, в моем случае это Wildfly. – codenoob

+0

Вы можете использовать [wildfly-maven-plugin] (https://docs.jboss.org/wildfly/plugins/maven/latest/), чтобы запустить сервер во время тестов и закрыть его после завершения тестов. –

ответ

5

Вы должны использовать фреймворк arquillian от самого jboss http://www.mastertheboss.com/jboss-frameworks/arquillian/arquillian-tutorial.

Что такое эта структура, так это: в фоновом режиме создается экземпляр jboss. Все там развернуто, поэтому вы можете запускать свои ejb или сервлеты в этом «фоновом» контейнере.

Непросто его настроить, поэтому я бы посоветовал вам начать с Jboss Tools для eclipse. Код выглядит то вроде этого:

@Deployment 
public static Archive<?> createTestArchive() { 
    return ShrinkWrap.create(WebArchive.class, "test-demo.war") 
      .addAsResource("META-INF/persistence.xml") 
      .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml"); 
} 

Я не жалуют этот подход, это действительно отдельное развертывание, вы должны полностью понять структуру WAR и EJB пакетов и все другие детали.

Это действительно лучше, что вы, ваши EJB, JPA и сервлеты, являются только легкими обертками вокруг обычных классов Java (POJO), где находится настоящая логика. Затем вы можете использовать простые модульные тесты для тестирования.

Смежные вопросы