Модульное тестирование JSP во встроенном режиме - PullRequest
3 голосов
/ 07 мая 2009

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

Хотя существует множество решений для модульного тестирования Java, я предпочитаю не использовать метод, при котором отдельный полнофункциональный контейнер JSP запускается, приложение развертывается и результаты собираются через TCP-соединение. Типичными примерами этого случая могут быть Apache Cactus, Selenium и т. Д. В идеале я хочу иметь встроенное решение, которое будет как можно более легким (подключение к сети не требуется, это хороший знак). Я также рассмотрел различные макеты фреймворков, но не нашел ни одного чистого рабочего примера, когда JSP компилируется / выполняется во время модульного теста.

Наиболее близким решением, которое мне удалось найти, было использование Jetty во встроенном режиме или, в частности, его класс ServletTester, как описано в http://docs.codehaus.org/display/JETTY/ServletTester

К сожалению, вышеупомянутый метод работает только для сервлетов, но не упоминает JSP. Я предполагаю, что есть способ программно подключить сервлет Jasper к нему, но я не могу позволить себе потратить неделю на погружение во внутреннюю часть Jetty / Jasper только для того, чтобы объединить эти два. Я не против использовать любой другой контейнер JSP / Servlet, если он бесплатный и гибко настраивается.

Буду признателен, если кто-нибудь получит аналогичную настройку и захочет поделиться опытом.

Ответы [ 2 ]

2 голосов
/ 15 февраля 2011

Вот пример проекта, который запускает Jettys ServletTester с jsps.

https://github.com/genthaler/jetty-jsp-unit-test-simple/

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

Взгляните на HttpUnit - http://httpunit.sourceforge.net/. Он поставляется в комплекте с ServletUnit, механизмом сервлетов в памяти, который будет обрабатывать JSP. Обычно его следует использовать только для проверки части View правильно разложенного MVC-приложения или для проведения некоторых интеграционных / приемочных тестов.

Бизнес-логика должна тестироваться непосредственно из POJO.

...