Модульное тестирование в среде Java EE - PullRequest
5 голосов
/ 20 мая 2009

Мы переносим наше приложение в контейнер Java EE и ищем инструменты для использования в модульном тестировании (и интеграционном тестировании) нашего перенесенного приложения. Наши требования включают в себя:

  • Специальное тестирование: возможность запускать тесты вручную, по требованию (для использования разработчиками при разработке кода)
  • Пакетное тестирование: возможность регулярно запускать большой (и растущий) набор тестов
  • In-Container: интеграционные тесты, которые используют EJB при развертывании в контейнере
  • Модульное тестирование: тестирование классов не обязательно в контексте EJB
  • Приятно иметь: прост в настройке, интегрируется с ant / IDE
  • Нет необходимости тестировать сервлеты / JSP - только POJO и EJB

Что вы используете для тестирования в среде Java EE? Какие технологии / настройки вы развернули?

В результате моих исследований были обнаружены Cactus и JUnitEE: вам удалось их настроить?

Ответы [ 2 ]

1 голос
/ 20 мая 2009

Мы используем обычный JUnit для модульных и интеграционных тестов. Мы переключаемся между ними, используя аргумент VM, и тесты помечаются маркерами для прямого и серверного. Однако у нас есть собственный класс TestSuite, который находит и запускает тесты на основе этой информации, поскольку он проще и менее подвержен ошибкам, чем ручное ведение тех тестов, которые нужно запустить.

В нашем случае мы используем удаленное взаимодействие Spring для общения с сервлетами и EJB (через сервлеты), и тестирование обоих случаев - это просто отдельная конфигурация запуска в Eclipse.

Мы использовали JunitEE несколько лет назад, но в итоге отказались от него в пользу использования JUnit повсюду. Это позволило нам заставить разработчиков проводить все свои тесты вообще без сервера и запускать оба модуля и то, что я бы назвал интеграционными тестами низкого уровня в их IDE. Затем мы позволяем сборочной машине запускать те же тесты интеграции с тем же кодом, который теперь развернут на реальном сервере. Это значительно ускоряет цикл разработки, поскольку нам редко требуется запускать сервер и развертывать код службы.

1 голос
/ 20 мая 2009

JUnit (EE) - это то, что использовал каждый крупный проект ($ 100 млн.), Который я поддерживал. Это действительно фантастический инструмент, и знание того, как его использовать, неоценимо, когда / если вы решите искать другие возможности трудоустройства.

Я поддерживал государственную финансовую систему, которая не использовала модульное тестирование, но после многих попыток мы наконец-то внедрили JUnit. Система, над которой я сейчас работаю, представляет собой крупную модернизацию государственного учреждения, и мы используем JUnit для всех наших модульных испытаний. Две крупные фирмы, поддерживающие модернизацию, сделали JUnit стандартом для всех подпроектов. У нас есть ~ 200 разработчиков, использующих его без помех.

Это быстро и легко настроить, и как только вы поймете это и сможете использовать функции, это продемонстрирует, насколько это бесценно.

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