Как инициализировать EJB EntityManager в тесте JUnit? - PullRequest
3 голосов
/ 02 февраля 2012

Я пытаюсь написать тесты JUnit для сессионного компонента без сохранения состояния с внедренным EntityManager:

@Stateless
public class MyServiceBean implements MyService, ... {
@PersistenceContext
    private EntityManager em;
    ....

Конечно, ничего не делая, em остается нулевым в потоке теста ...

Тесты должны запускаться автономно (НЕ в контейнере Java EE).

Как мне это сделать, пожалуйста?(простые решения будут наиболее ценными: -)

Ответы [ 2 ]

3 голосов
/ 02 февраля 2012

Простой ответ: не делайте этого, если вы хотите внедрить контекст постоянства, как в реальном работающем приложении, используйте встроенный / внешний сервер для тестирования.Более подробную информацию о тестировании EJB и JPA вы можете найти здесь: Лучшая текущая среда для модульного тестирования EJB3 / JPA

0 голосов
/ 02 февраля 2012

Если вы хотите проверить свою логику доступа к данным (код критерия, запросы jpql и т. Д.), Я бы использовал HSQLDB .Нет необходимости издеваться над EntityManager или иметь контейнер Java EE, и он прекрасно интегрируется с процессом сборки.

...