Pregunta

Actualmente estoy usando marco TestNG para probar la lógica empresarial de la aplicación, he añadido algunas clases de servlet recientemente.

¿Cómo se prueba la unidad de estas clases de servlet en el marco TestNG?

¿Fue útil?

Solución

Siga el consejo de skaffman si es posible. Si no es así, o si desea probar el comportamiento de los servlets como controladores de front-end, en lugar de la lógica de negocio dentro de ellos, puede utilizar:

Otros consejos

Una de las maneras más fáciles es ServletTester del embarcadero. Todo se hace dentro de embarcadero incrustado de forma automática, por lo que no hay un puerto abierto durante la prueba! Si utiliza Maven que el siguiente artefacto necesaria para que este método:

<dependency>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>jetty-servlet-tester</artifactId>
  <version>6.1.16</version>
  <scope>test</scope>
</dependency>

Ejemplo:

Preparar ServletTester

ServletTester tester=new ServletTester(); 
tester.addServlet(HelloServlet.class, "/hello"); 
tester.start();

Crea petición HTTP

HttpTester request = new HttpTester(); 
request.setMethod("GET");
request.setHeader("Host","tester"); 
request.setURI("/hello");
request.setVersion("HTTP/1.0");

servlet llamada y recuperar la respuesta:

HttpTester response = new HttpTester();
response.parse(tester.getResponses(request.generate()));

Afirmar lo desea comprobar la respuesta y su contenido:

assertEquals(200,response.getStatus()); 
assertEquals("Hello Servlet",response.getContent());

Sugiero que se mueve toda la lógica de negocio a cabo de las clases de servlets, en sus propias clases que se pueden probar. Eso deja a los servlets simplemente como nexo de unión entre la lógica de negocio y el contenedor, sin nada en ellos vale la pena probar.

Las clases de la API como HttpServletRequest, ServletConfig, etc, son los principales objetivos para el uso de un marco de burla de su elección (JMock, Mockito, etc), ya que son todas las interfaces.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top