Имеет ли смысл проводить модульное тестирование в приложениях Java EE? - PullRequest
1 голос
/ 02 ноября 2010

Я слышал, что модульное тестирование Java EE намного сложнее, чем стандартные приложения Java.Тестирование для приложения моей компании остается на Приемочное тестирование пользователя.Мы проверяем пользовательский интерфейс и функции ведут себя так, как они должны.Имеет ли смысл проводить модульное тестирование в приложениях Java EE?Если да, каковы хорошие отправные точки?

Ответы [ 5 ]

4 голосов
/ 02 ноября 2010

Конечно, это имеет смысл.

Позвольте мне угадать: в случае вашей компании, когда вы вносите незначительное изменение в центральный компонент, я полагаю, что вы будете повторять снова и снова свое принятие пользователятесты.На мой взгляд, настоящая PITA, которая, на мой взгляд, слишком важна для команды разработчиков.

Модульное тестирование позволяет согласованно разрабатывать различные уровни приложения Java EE (т. Е. Представление, бизнес и модель), И,Более того, он позволяет проводить регрессионное тестирование .Волшебство регрессионного тестирования заключается в том, что в приложениях с длительным сроком службы это дает вам возможность быть уверенным, что новый патч, рефакторинг кода или эволюция не нарушат текущее поведение системы.И это может быть сделано автоматически, если вы используете инструмент непрерывной интеграции .

Таким образом, вы можете написать модульный тест для бизнес-уровня и уровня модели напрямую, используя, например, JUnit .И здесь возникает проблема с модульным тестированием в приложениях Java EE: что мы делаем с уровнем представления?

Что ж, для уровня представления вы можете использовать инструмент автоматического тестирования, скажем Apache jMeter , чтобы проверить ожидаемое поведение ваших веб-приложений, проверить правильность ваших данных, вашу стабильность системы (программирование длинных тестов с постоянным числом пользователей) и масштабируемость (с увеличением и уменьшением количества одновременных пользователей), стресс-тестирование и т. д. (я знаю, что этоне модульное тестирование, но его можно использовать аналогичным образом для регрессионного тестирования).

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

3 голосов
/ 02 ноября 2010

Ввод ресурсов CDI в Java EE 6 был практически сделан для модульного тестирования;вы можете поменять @ Inject-ed FacesContexts, ресурсы базы данных и bean-компоненты на bean-компоненты @Alternative, которые имеют предсказуемое поведение при тестировании.

3 голосов
/ 02 ноября 2010

Всегда имеет смысл проводить модульное тестирование на сервере.Java EE не обязательно сложнее для модульного тестирования.Хорошей отправной точкой является код и различные уровни приложения.то есть начать писать модульные тесты на постоянство, затем писать модульные тесты для служб и т. д.

0 голосов
/ 03 ноября 2010

Да, Java EE сложнее для модульного тестирования. Также намного труднее исправить это, когда вы что-то ломаете и не замечаете это в течение двух недель, потому что вы никогда не удосужились написать модульные тесты.

Чем сложнее приложение, тем больше необходим хороший режим тестирования. И поскольку мы говорим о Java EE, можно с уверенностью предположить, что ваше приложение является сложным.

0 голосов
/ 02 ноября 2010

Тестирование только на уровне пользовательского интерфейса опасно, потому что в нижнем слое могут быть ошибки, которые либо скрыты, либо компенсируются в верхних слоях НАИБОЛЕЕ времени.Это также означает, что когда вы испытываете проблему, вы должны сначала выяснить, находится ли проблема в переднем или заднем конце.

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