Если я хочу проверить локальный интерфейс / отсутствие интерфейса EJB, нужно ли мне использовать Arquillian?
Нет необходимости использовать Arquillian, но есть определенные вещи, которые стали прощекогда вы делаете это.
Обычно вы просто используете EJBContainer
API, доступный в EJB 3.1, для тестирования EJB во встроенном контейнере (который работает в той же JVM, что и тесты).В случае встроенного Glassfish это обычно приводит к развертыванию EJB-компонентов, которые находятся в пути к классам приложения.
Arquillian позволяет вам делать гораздо больше, чем выполнять тесты в контейнере.Он управляет жизненным циклом контейнера, поэтому не требует написания кода, кроме установки свойств в файле arquillian.xml
.Это позволяет вам гораздо проще управлять развертыванием в контейнере;используя ShrinkWrap API, можно программно выполнять различные контекстно-зависимые развертывания в контейнере.Кроме того, внедрение зависимостей (тестовое обогащение) также может быть выполнено при условии, что они поддерживаются Arquillian.
Достаточно знать, что поддержка встроенного контейнера Glassfish для Arquillian использует те же API, которыепредоставляется встроенным API Glassfish;обычно вы можете в конечном итоге дублировать работу Arquillian, за исключением некоторых уникальных сценариев.
Если вам интересно взглянуть на примеры с использованием Arquillian, этот проект GitHub поможет.