Одним из самых простых способов является ServletTester от Jetty. Все делается внутри встроенного Jetty автоматически, поэтому во время тестирования порт не открывается! Если вы используете Maven, то для включения этого метода требуется следующий артефакт:
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-servlet-tester</artifactId>
<version>6.1.16</version>
<scope>test</scope>
</dependency>
Пример:
Подготовить ServletTester
ServletTester tester=new ServletTester();
tester.addServlet(HelloServlet.class, "/hello");
tester.start();
Создать HTTP-запрос
HttpTester request = new HttpTester();
request.setMethod("GET");
request.setHeader("Host","tester");
request.setURI("/hello");
request.setVersion("HTTP/1.0");
Вызов сервлета и получение ответа:
HttpTester response = new HttpTester();
response.parse(tester.getResponses(request.generate()));
Укажите, что вы хотите проверить в ответе и его содержимом:
assertEquals(200,response.getStatus());
assertEquals("Hello Servlet",response.getContent());