2010-02-10 16 views
8

Ho visto Jetty e la classe ServletTest che è possibile utilizzare per testare servlet.Come posso testare servlet con JUnit?

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

Sai se c'è qualcosa di simile in Tomcat? Come posso testare un servlet?

+0

Per il test dell'unità, non dovrebbe importare quale contenitore servlet utilizzate. Questo è simile all'utilizzo di HSQL invece di Oracle per il test di unità del codice di accesso al database. Quindi, anche se si scrive per una distribuzione Tomcat, se Jetty è più adatto per il test delle unità (più veloce da avviare, più facile da configurare ecc.), Si può andare con Jetty. – Thilo

risposta

6

Date un'occhiata a Jakarta Cactus

Cactus è un semplice quadro di prova per il codice unità di test lato server Java (Servlet, EJB, Tag Libs, filtri, ...).

Here's a servlet test how-to

+3

FYI Jakarta Cactus è stata ritirata dal 2011/08/05. :( – Piko

2

Non ho mai trovato un vantaggio per testare direttamente le servlet (né le azioni di Struts, ad esempio), soprattutto considerando il lavoro necessario per farlo.

La maggior parte dei miei servlet/azioni/qualsiasi uso usano POJO per la maggior parte del loro lavoro, e i POJO sono pesantemente testati. Le webapp stesse hanno suite di test HtmlUnit. Tutto in mezzo suppongo di essere solo idraulico.

Non credo di aver mai incontrato alcun tipo di errore che sarebbe stato SOLO catturato testando direttamente le classi di servlet e che non sarebbe stato rilevato dai test POJO o webapp.

+2

Punto preso. Tuttavia nel mio caso, ho ereditato un servlet spazzatura che è terribilmente complesso e buggy.Essere in grado di chiamarlo da un test di unità per lo scenario specifico che non riesce accorcia notevolmente il mio processo di debug. :) – Piko