Cómo mejorar la calidad y confiabilidad de tu código con Jest
En el mundo de la programación, probar códigos es una buena práctica que busca garantizar que las aplicaciones funcionen conforme lo esperado, además de detectar errores y problemas de lógica, mejorando el mantenimiento del código. Cada lenguaje posee frameworks específicos de pruebas, en el lenguaje JavaScript una de las herramientas más populares es Jest.
Pero te debes estar preguntando: ¿Qué hace a Jest tan especial? Uno de los principales factores es que fue creado para ser simple y fácil de usar, desde su instalación y creación hasta la ejecución de las pruebas.
Este artículo abordará la importancia de tener pruebas unitarias en el código y cómo hacerlo utilizando el framework Jest de JavaScript. Además, se mostrarán los beneficios y las principales características de Jest mediante ejemplos prácticos. Al final de este artículo, será posible tener una comprensión acerca del papel desempeñado por las pruebas unitarias en el desarrollo de un software.
Ventajas del uso de pruebas unitarias
Aquí hay algunos motivos para la necesidad de usar pruebas unitarias en tu software:
- Detección previa de errores: con pruebas unitarias es posible identificar los errores de forma más rápida antes de que ocurran problemas de gran magnitud;
- Calidad de código: el código queda mejor estructurado, separando responsabilidades, lo que consecuentemente lo deja con bajo acoplamiento;
- Mantenimiento: cuando la prueba está bien escrita, es fácil hacer cambios en el código con seguridad, pues si hay algún problema en estos cambios, las pruebas unitarias indicarán el error;
- Documentación: las pruebas unitarias ayudan a entender la finalidad de clases y funciones, por lo tanto, sirven como documentación del código.
Recursos de Jest
Como se mencionó anteriormente, Jest es ampliamente utilizado cuando se trata de crear pruebas en JavaScript, elegido principalmente por su simplicidad y la cantidad de recursos ofrecidos. A continuación se mostrarán algunos de los recursos disponibles en este framework que lo hacen tan apreciado.
- Simplicidad en la configuración: con Jest es posible comenzar a hacer pruebas rápidamente, incluso sin tener mucho conocimiento de sintaxis y sin mucha configuración inicial;
- Pruebas de snapshot: una característica que destaca es la posibilidad de crear snapshots, que es una capa adicional de prueba que permite capturar una representación del estado actual del código y compararlo con versiones anteriores, detectando automáticamente cualquier cambio inesperado;
- Mocks: Jest ofrece recursos avanzados para la creación de mocks (simulaciones de módulos y funciones);
- Detección automática de pruebas: detecta automáticamente archivos de prueba que contengan el sufijo .test.js o .spec.js, lo cual es una convención de nomenclatura del propio framework;
- Ejecución rápida de pruebas: Jest tiene una ejecución rápida de pruebas, está optimizado para ejecutar solo las pruebas necesarias correspondientes a las partes donde se hicieron cambios en el código;
- Aserciones integradas: Jest posee varias formas de aserciones integradas para verificar si el resultado de las pruebas corresponde a lo esperado.
Ejemplos prácticos
Para que una prueba escrita en Jest funcione, es necesario instalarlo en tu proyecto con el siguiente comando.
Una vez instalado, será necesaria la creación de un archivo de configuración. Ejecuta el siguiente comando para crear este archivo, nota que Jest hará algunas preguntas sobre la forma en que deseas configurarlo.
Para comenzar a codificar pruebas, crea un archivo dentro del proyecto con la extensión .spec.js o .test.js, que son los sufijos reconocidos por Jest. Después de esto, ya puedes comenzar a escribir tu prueba. Primero escribe la función a ser probada.
A continuación, un ejemplo de cómo sería escrito en Jest, una prueba simple de la función de resta.
Vamos a otro ejemplo, supongamos que tengo una función que verifica si un número es par como se muestra a continuación.
Ahora, dentro de un archivo con el sufijo reconocido por Jest (.test.js o .spec.js), escribe lo siguiente para probar tu función de números pares.
Nota que la primera prueba debe devolver true para pasar la prueba, ya que todos los números son pares, en la segunda prueba se espera que devuelva false, ya que todos los números son impares.
Los ejemplos mencionados son simples, pero Jest no se resume solo a lo que se ha presentado, hay mucho más por explorar, en el próximo tópico mostraré los tipos de aserciones que Jest posee.
Tipo de aserciones
En Jest hay una variedad de funciones de aserciones con las que es posible verificar si el resultado de las pruebas es correcto. Mostraré las más utilizadas, pero en caso de que quieras conocer el resto, dejaré el enlace de la documentación oficial.
- toBe(valor): verifica si un valor es estrictamente igual a otro (usando ===).
- toEqual(valor): verifica si un valor es igual a otro, comparando profundamente objetos y arrays.
- toBeTruthy(): verifica si un valor es evaluado como verdadero.
- toBeFalsy(): verifica si un valor es evaluado como falso.
- not.toBe(valor): verifica si un valor no es estrictamente igual a otro.
- toBeNull(): verifica si un valor es nulo.
- toBeDefined(): verifica si un valor está definido.
- toBeUndefined(): verifica si un valor es indefinido.
- toBeNaN(): verifica si un valor es NaN.
- toContain(valor): verifica si un array o string contiene un valor específico.
- toHaveLength(comprimento): verifica si un objeto tiene la longitud especificada.
- toMatch(regexp ou string): verifica si una string corresponde a una expresión regular u otra string.
- toBeInstanceOf(Classe): verifica si un objeto es una instancia de una clase.
- toThrow(): verifica si una función lanza una excepción.
Conclusión
Después de leer el artículo, es notable que las pruebas automatizadas desempeñan un papel fundamental en garantizar la calidad del software, ya que ayudan en la detección temprana de errores, además de asegurar que el código sea mantenible. Se exploraron los beneficios de las pruebas unitarias y se destacaron algunas características que hacen de Jest una herramienta popular entre los desarrolladores. A través de ejemplos simples de pruebas, puedes comprender cómo funciona Jest y cómo es eficaz para la testabilidad de unidades de código.
Espero que este artículo haya sido útil, si tienes alguna duda, consulta la documentación oficial de Jest.
Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.