Как я могу тестировать сервлеты с помощью JUnit?


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

tester = new ServletTester();
tester.setContextPath("/");
tester.addServlet(TestServlet.class, "/servlet/*");
... 
tester.start();

Вы не знаете, есть ли что-то подобное в Tomcat? Как я могу протестировать сервлет?

3   8  

3 ответа:

У HttpUnit есть "смоделированный контейнер", называемый ServletUnit.

Взгляните на Джакартский кактус

Cactus-это простая тестовая платформа для модульного тестирования серверного кода java (сервлеты, EJBs, Tag Libs, фильтры,...).

Вот тест сервлета how-to

Я никогда не находил преимущества в тестировании сервлетов напрямую (или, скажем, действия Struts), особенно учитывая работу, необходимую для этого.

Большинство моих сервлетов / действий / чего бы то ни было используют POJO для основной части своей работы, и POJO сильно протестированы. Сами веб-приложения имеют наборы тестов HtmlUnit. Все, что между ними, я полагаю, просто водопровод.

Я не верю, что я даже однажды столкнулся с какой-либо ошибкой, которая была бы поймана только при тестировании сервлета классы напрямую, и что бы не попасться на объект POJO или веб-приложение тесты.