Информация

Дата основания
Местоположение
Россия
Сайт
www.luxoft.com
Численность
5 001–10 000 человек
Дата регистрации

Блог на Хабре

Обновить
Комментарии 1
До сих пор благодаря изумительной идее и архитектуре JavaEE основным средством тестирования является билд-деплой-вебтест ручками. Хоть убей, хоть сядь сверху — все-равно кодеры будут тратить 10 минут на ручной тест, нежели днями исхитряться в попытках собрать автоматический тест.

Для начала, JavaEE код не приспособлен для выполнения вне сервера приложений, в отличие, например, от Spring-а. Все это хаки и подпорки. Есть жесткий функционал, предоставляемый сервером, и код, интегрируемый в него. Естественно, для тестов необходима различная конфигурация платформы, но, внезапно, она лежит за пределами спецификации JavaEE — типа, это не наша проблема как все сконфигурировать. Будете ли вы держать и пускать 20 различных профайлов, либо каждый раз менять конфу ручками, либо использовать скрипт конфигурации — ваши проблемы. Другое дело Spring, где все сервисы и ресурсы конфигурируются прямо в контексте, а различные контексты можешь менять как перчатки.

Идея ручками замокать все объекты для интеграционного теста лишена всякого смысла. Что мы в этом случае тестируем? Должна быть задействованы именно сервисы и ресурсы платформы: как минимум, база данных, пусть тестовая H2, но все же реальная база вместо тупого DAO Mock; реальный вебсервис, пусть и возвращающий тестовые значения, реальные транзакции проходящие через несколько EJB, etc… Попробуйте локально протестировать CDI Events… Так что как ни крути, нужна JavaEE платформа.

Благо есть легкий OpenJPA/TomEE, который запускается в embedded режиме — самый легкий способ тестирования JavaEE приложений без особых танцев с бубном. Еще есть WELD, но он умеет только CDI.

Еще стоит отметить старания ребят из RedHat. Они реально пытаются продвигать JavaEE и что-то на нем делать. На сегодняшний день JBoss наиболее developer-friendly сервер. Он позволяет модульно деплоить собственные ресурсы (JDBC, JMS, etc...), а также имеет Rest API для конфигурирования сервера. Плюс упомянутый Arquillian — один большой работающий хак, который хоть как-то позволяет автоматизировать процесс тестирования. Ничего, что каждый раз требуется самому собирать пакет и указывать все классы и ресурсы, ничего, что приходиться дописывать dependencies из мавена, ничего, что каждый раз требуется сборка-старт сервера-деплой-тест-стоп и элементарный тест занимает до пары минут, ничего, что до сих пор нельзя сделать общий TestSuite, главное — хоть как-то, но работает!!!
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.