CRUD con Spring MVC Portlet (IV): Realizando pruebas unitarias

CRUD con Spring MVC Portlet (IV): Realizando pruebas unitarias

0. Índice de contenidos.

1. Entorno

Este tutorial está escrito usando el siguiente entorno:

  • Hardware: Portátil Mac Book Pro 17″ (2,6 Ghz Intel Core i7, 8 GB DDR3)
  • Sistema Operativo: Mac OS X Snow Leopard 10.6.4
  • Spring MVC Portlet 3.0.4
  • Maven 2.2.1
  • Eclipse 3.6 (Helios) con M2Eclipse
  • Spring Test 3.0.4

2. Introducción

Este tutorial es la cuarta parte de una serie, por lo que te recomiendo que antes leas:

En esta cuarta parte vamos a ver cómo podemos probar nuestro desarrollo sin necesidad de arrancar el gestor de portales, gracias a los mocks que nos proporciona Spring en su librería de test.

3. Manos a la obra

Lo primero que necesitamos es añadir la dependencia de spring test al pom de nuestro proyecto de esta forma:

Ahora creamos la clase del test con el asistente de Eclipse para ello con botón derecho sobre la clase del controlador seleccionamos New –> Other –> JUnit –> JUnit Test Case asegurándonos de crear la clase de test dentro de la carpeta src/test/java (si no existe la creamos) para que Maven tenga el cuenta este test a lo ahora de ejecutar sus goals.

Una vez creada la clase de test, lo siguiente es configurarla para que arranque el contexto de Spring de nuestra aplicación.

Con estas anotaciones levantamos el contexto de Spring especificado en el atributo locations, que en nuestro caso, apunta al fichero applicationContext.xml de nuestro proyecto.

Ya estamos en disposición de realizar nuestro primer test unitario con Spring MVC Portlet. Como es el primero va a ser sencillo, simplemente vamos a chequear que el método defaultView mete en el model el atributo “listaPersonas”.

Ahora sólo basta que ejecutemos el test para ver si la condición se cumple o se produce algún tipo de error.

Lo siguiente que vamos a hacer es probar el formulario y la validación del mismo. Para ello vamos a crear al menos dos casos de prueba, uno que sea correcto y otro que contenga un error, por ejemplo, que la persona introduzca como nombre Pepe (vuelvo a repetir que no tengo nada en contra de los que se llaman Pepe)

Ahora vamos a probar la inserción, la modificación y el borrado de una persona. Fijaos como Spring nos proporciona las clases MockActionResponse y MockActionRequest para cuando necesitamos simular el contexto de la request en los métodos de acción del portlet y MockRenderResponse y MockRenderRequest para los métodos de vista. Este podría ser un ejemplo:

4. Conclusiones

Como se demuestra es sencillo probar la lógica de nuestros portlets cuando están hechos con Spring MVC. La ventaja fundamental es que podemos realizar todas las pruebas que queramos sin necesidad de arrancar el gestro de portales, lo que provoca una reducción en el tiempo de desarrollo de los portlets y además se proporciona una forma de poder aplicar TDD para el desarrollo de portlets.

Con este tutorial doy por finalizada esta serie, y espero que os sea de utilidad.

Cualquier duda o sugerencia en la zona de comentarios.

Saludos.