2010-02-10 5 views
8

Widziałem Jetty i klasę ServletTest, której można używać do testowania serwletów.Jak mogę przetestować serwlety przy użyciu JUnit?

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

Czy wiesz, że w Tomcacie jest coś podobnego? Jak mogę przetestować serwlet?

+0

Do testowania jednostkowego nie powinno mieć znaczenia, z jakiego kontenera serwletu korzystasz. Jest to podobne do użycia HSQL zamiast Oracle do testowania jednostkowego kodu dostępu do bazy danych. Więc nawet jeśli piszesz o wdrożeniu Tomcat, jeśli Jetty jest bardziej odpowiedni do testowania jednostkowego (szybciej rozpocząć, łatwiej konfigurować itp.), Możesz iść z Jetty. – Thilo

Odpowiedz

2

Nigdy nie znalazłem korzyści dla testowania serwletów bezpośrednio (ani akcji Struts'a, powiedzmy), szczególnie biorąc pod uwagę pracę, która jest potrzebna, aby to zrobić.

Większość moich serwletów/akcji/dowolne wykorzystanie POJO dla większości ich prac, a POJO są mocno testowane. Same aplikacje internetowe mają pakiety testów HtmlUnit. Wszystko pomiędzy nimi zakładam, że jestem po prostu hydraulikiem.

Nie wierzę, że kiedykolwiek spotkałem się z jakimkolwiek błędem, który zostałby TYLKO złapany przez bezpośrednie przetestowanie klas serwletów i który nie zostałby przechwycony przez testy POJO lub testy internetowe.

+2

Punkt wzięty, jednak w moim przypadku odziedziczyłem serwlet śmieciowy, który jest strasznie złożony i wadliwy, ponieważ możliwość wywoływania go z testu jednostkowego dla określonego scenariusza, który zawodzi, znacznie skróci mój proces debugowania :) – Piko