Aprende a crear pruebas unitarias con JUnit y Mockito en 15 minutos

testing

Las pruebas unitarias son sumamente importantes en el desarrollo de software. Pero muchos desarrolladores, a pesar saber su importancia, no las codifican en sus proyectos. Las Pruebas unitarias con JUnit y Mockito te facilitarán la tarea de la automatización de tus pruebas, conocer estas herramientas no solo aumentara tus skills y valor en el mercado, además te ahorrara mucho tiempo a largo plazo y aumentaras la calidad de tu trabajo. En el siguiente ejemplo aprenderás su uso básico en 15 minutos.

Para qué sirven JUnit y Mockito

  • JUnit: Nos permite evaluar el resultado de la ejecución de un método. Es decir, nos permite comparar el resultado esperado, con el que realmente estamos obteniendo después de ejecutar el método.
  • Mockito: Nos ayuda a simular la respuesta de otro método necesario para ejecutar el método que necesitamos probar. Esto nos permite centrarnos únicamente en el método que deseamos probar.

Ejemplo de Pruebas unitarias con JUnit y Mockito

Librerías necesarias

Caso practicó, transformación de divisa

Para mostrar el uso correcto de las pruebas unitarias. Vamos a crear un ejemplo en el dependiendo del tipo de cambio, transforme un tipo de divisa a su equivalente en dólares.

En el ejemplo vamos a simular que existe un servicio que nos devuelve el tipo de cambio de dólares con la divisa que queramos probar en tiempo real. Y el resultado que nos devolverá será el siguiente pojo.

Supongamos que el método para obtener el tipo de cambio es un servicio de terceros al que tenemos que conectarnos para obtener la información, no tenemos control sobre su disponibilidad y sobre la información que regresa.

Así que es perfecto para utilizarlo como ejemplo para el uso de la Librería Mockito. Por fines prácticos solo vamos a declararlo, pero no implementarlo.

Creando ahora el método que vamos a probar, pero solamente vamos a regresar en ellos un null. La idea es que al crear método test y al ejecutarlo lo primero que haga es fallar. Y entonces comenzar a modificar el código hasta que el test pase.

Creamos un paquete y una clase de prueba que emule la clase que se va a probar.

Estructura proyecto pruebas unitarias

Puedes notar que el paquete en el que esta tienen el mismo nombre y a la clase se le agrego el subfijo test.

Cada método de prueba tiene que tener la anotación @test y el nombre del método debe decir explícitamente lo que se esta probando y lo que espera.

La creación de métodos  se divide en 3

  1. Preparación
  2. Ejecución
  3. Comparación

Con mockito estas simulado el método para obtener la divisa. Para usarlo primero creamos un mock de la clase, con el método when especificamos el método que queremos simular y con el método then podemos especificar la respuesta que queremos obtener.

Y ya tenemos todo lislo para ocuparlo en la simulación. Ejecutamos el test ahora y fallara ya que no hemos implementado el metodo del servicio.
Ahora lo siguiente es la implentación del método. En este caso la implantación es una simple división.

Ahora ejecutamos el test y pasa correctamente.

eclipse integracion junit

En métodos más complejos sigue la etapa del refactoring ahora podemos mejorar nuestro código y el ejecutar la prueba nos asegurara que nuestro método sigue funcionando.

Debemos de crear las pruebas para todos los casos que creamos posibles. Por ejemplo, si el servicio para obtener el tipo de cambio nos regresa null o alguna excepción, Etc.

Prueba tus conocimientos

166
Created on By eduesqui

QUIZ JUnit y Mockito

Prueba tus conocimientos. Y obtén un regalo al terminar.

 


 

1 / 5

JUnit y Mockito se utilizan para ...

2 / 5

¿Cuál de las siguientes es la anotación para indicar que se trata de un método de prueba?

3 / 5

¿Qué librería sirve para simular una respuesta de un método que necesitamos probar?

4 / 5

¿Que conocimientos te ayudaran y facilitaran la implementación de test unitario en tu código?

5 / 5

Métodos utilizados para simular una respuesta de un método mockeado

Your score is

The average score is 68%

0%

Conclusiones

Ahora ya sabes cómo funciona Junit y Mockito y sabes cómo aplicarlo. Pero la potencia de esta herramienta no termina aquí, pues utilizar otras anotaciones como @before para preparar un ambiente antes de ejecutar las pruebas, también puedes realizar integraciones con Spring. Conocer sobre SOLID te ayudará a diseñar mejor tus clases y al mismo tiempo a facilitar la implementación de pruebas unitarias. Si te interesa completar esta habilidad puedes optar por un curso completo donde adquieras rápidamente los conocimientos completos del TDD


0 Shares:
You May Also Like