lunes, 3 de diciembre de 2012

TESTEAR UN SERVICIO WEB CON JUNIT

En esta sección les explicaré cómo testear un servicio web usando JUnit. Para ello usaremos el servicio web creado en el post anterior.
  • JUnit es un conjunto de clases (framework) que permite realizar la ejecución de clases Java de manera controlada, para poder evaluar si el funcionamiento de cada uno de los métodos de la clase se comporta como se espera. Es decir, en función de algún valor de entrada se evalúa el valor de retorno esperado; si la clase cumple con la especificación, entonces JUnit devolverá que el método de la clase pasó exitosamente la prueba; en caso de que el valor esperado sea diferente al que regresó el método durante la ejecución, JUnit devolverá un fallo en el método correspondiente.
Para hacer las pruebas con JUnit, se tiene que importar el jar respectivo, para ello en el archivo pom.xml, se tiene que agregar el siguiente código dentro de la sección dependencies para que el proyecto Maven descargue el jar:

     <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit-version}</version>
            <scope>test</scope>
        </dependency>


Adicionalmente, creamos un archivo de configuración en el source folder src/test/source llamado applicationTest.xml. Esto ya fue explicado en el post anterior.


Luego de esto, en el source folder src/test/java creamos una clase ClienteTest donde implementaremos el código para las pruebas usando JUnit.



La anotación @RunWith(SpringJUnit4ClassRunner.class) hace que Spring levante su factory y prepare la ejecución. De forma alternativa se puede heredar de la clase AbstractJUnit4SpringContextTests; de hacerlo, se tiene acceso al contexto de Spring y otras utilidades.

La anotación @ContextConfiguration permite decir dónde están los ficheros de configuración de Spring (para nuestro ejemplo sólo usamos uno, pero se puede poner todos los que se quieran). Con @Autowired inyectamos de forma automática las dependencias entre clases (servicios, daos, controllers, etc).

El método assertEquals() generalmente admite dos parámetros: El primero es el valor esperado y el segundo el valor que hemos obtenido. 

Para realizar la prueba, primero tenemos que correr el proyecto. Luego, corremos el test de la siguiente manera:



El resultado que JUnit nos mostrará tiene dos escenarios: éxito y fracaso. El caso exitoso es cuando el resultado esperado es que realmente deseamos y si esto ocurre JUnit nos mostrará una franca verde indicando que todo esta OK.


El escenario de fracaso se da cuando el resultado obtenido no es el que esperamos. JUnit nos mostrará un franja de color rojo indicando el fallo de la prueba y a qué se debió el error:


No hay comentarios:

Publicar un comentario