EJB 3.1 Embedded API - модульное тестирование сущностей EJB + JPA - PullRequest
5 голосов
/ 05 мая 2010

Кто-нибудь делал это или пытался сделать это для существующего проекта?
Похоже, здесь есть два варианта: либо встроенный EJB API , в основном следующий класс

javax.ejb.embeddable.EJBContainer

Предполагается, что настроенная установка glassfish v3 будет доступна (ресурсы области приложения упростят эту задачу).

Альтернативой является использование встроенных файлов jar glassfish и API API Glassfish

Я ищу отзывы от кого-то, кто имеет или находится в процессе этого, ссылки на блоги и т. Д. С простым EJB и контрольным примером - десять центов.

Если вы сделали это с любым другим контейнером EJB 3.1, не стесняйтесь поделиться.

  1. Использовали ли вы какой-либо конкретный тестовый фреймворк по причинам, отличным от предпочитаемого вами инструмента?
  2. Какую реализацию JPA 2.0 вы использовали, и была ли для этого особая причина?
  3. Если вы использовали Glassfish, какую из вышеуказанных стратегий вы использовали? Если нет, то какой контейнер EJB 3.1 вы использовали?
  4. Если вы успешно сделали это, стоило ли это усилий, и вы бы сделали это снова для другого существующего проекта?

Ответы [ 2 ]

4 голосов
/ 06 мая 2010

Похоже, здесь есть два варианта: либо встроенный EJB API (...), который ожидает, что будет доступна конфигурированная установка glassfish v3.

Нет, вы можете также использовать минимальный домен внутри вашего проекта.

Я ищу отзывы от кого-то, кто имеет или находится в процессе этого, ссылки на блоги и т. Д. С простым EJB и контрольным примером - десять центов.

Я провел интеграционное тестирование EJB 3.1 и JPA на моем любимом проекте (под Maven), вдохновленное модульным тестированием EJB и JPA с Embeddable GlassFish . Читать это определенно стоит.

Использовали ли вы какой-либо конкретный тестовый фреймворк по причинам, отличным от предпочитаемого вами инструмента?

Нет.

Какую реализацию JPA 2.0 вы использовали, и была ли для этого особая причина?

Я использовал EclipseLink (потому что он был доступен в то время).

Если вы использовали Glassfish, какую из вышеуказанных стратегий вы использовали? Если нет, то какой контейнер EJB 3.1 вы использовали?

Я использовал API Embedded EJB, я планировал запустить свой код на других контейнерах Java EE 6, когда они будут доступны.

Если вы успешно сделали это, стоило ли это усилий, и вы бы сделали это снова для другого существующего проекта?

Ну, я думаю, что интеграционное / функциональное тестирование имеет значение и обнаруживает, что Embedded EJB API действительно хорош для этого. Использовать его было не больно, даже если я не считаю свой образец реальным проектом.

Для более сложных сценариев я слежу за maven-embedded-glassfish-plugin (см. Также этот ответ ).

1 голос
/ 05 июня 2011

Я написал небольшое руководство в своем блоге по использованию встроенного glassfish 3.1 для модульного тестирования EJB-компонентов с использованием javax.ejb.embeddable.EJBContainer. В этом есть некоторые подводные камни, которые я нашел, изменив встроенный домен glassfish по умолчанию и присвоив некоторые свойства вызову createEJBContainer().

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