Introducción a MockCalls en Jest

| Última modificación: 18 de marzo de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

En el desarrollo web, una de las habilidades más valiosas que puedes aprender es el testing y, más específicamente, cómo usar Jest para tus pruebas de JavaScript. Dentro de Jest hay un concepto clave que todo desarrollador debería conocer y entender: los MockCalls.

Imagina que estás en medio de un concierto de música. Te encanta la banda que está tocando y la energía del lugar es impresionante, pero hay un problema: el sonido no está bien. Hay algo que no está sonando como debería. Es un poco como probar tu código sin MockCalls. Puedes obtener una visión general de cómo está funcionando tu programa, pero si realmente quieres profundizar y entender qué está pasando, necesitas un acceso más detallado.

Jest, el marco de pruebas de JavaScript

Jest es un increíble y versátil marco de pruebas para JavaScript, muy empleado por los desarrolladores por su sencillez y eficacia. Nos permite escribir pruebas unitarias para nuestro código y, así, asegurarnos de que funciona como esperamos.

Con Jest, podemos crear funciones simuladas o mock functions, que son versiones falsas de nuestras funciones reales. Estas nos permiten controlar el comportamiento de nuestras funciones durante las pruebas y verificar que todo está funcionando de manera adecuada.

¿Qué son los MockCalls?

Los MockCalls son una propiedad especial de las funciones simuladas de Jest. Básicamente, son un array que registra todas las llamadas que se han realizado a nuestra función simulada, guardando los argumentos que se pasaron en cada llamada.

Con MockCalls, podemos revisar cuántas veces se llamó a la función y con qué argumentos se llamó. De esta manera, podemos asegurarnos de que nuestras funciones se están llamando correctamente y con los datos adecuados.

Piensa en ellos como el técnico de sonido en el concierto del ejemplo de la introducción. Tienen acceso a la mesa de mezclas, pueden ajustar los niveles y arreglar cualquier problema que se presente. Con MockCalls, puedes ver exactamente cómo se están ejecutando tus funciones: cuántas veces se llaman, qué argumentos se están pasando, etc. Te permite profundizar en tus pruebas, lo que resulta en un código más robusto y de alta calidad.

Supongamos que tienes una función que toma un número y devuelve su cuadrado. Podrías escribir una prueba con Jest y un mock de la función y luego usar MockCalls para asegurarte de que tu función se está llamando correctamente.

Ejemplo práctico de MockCalls

Veamos un ejemplo práctico que te servirá de guía. Supongamos que estamos probando un módulo (un mock module) que tiene una función para validar un correo electrónico. Podríamos utilizar una función simulada y luego revisar los MockCalls para asegurarnos de que nuestra función se está llamando con correos electrónicos válidos.

// Utilizamos "jest.fn()" para crear la función simulada
const mockValidateEmail = jest.fn();

// Llamamos a nuestra función con un correo electrónico
mockValidateEmail('[email protected]');

// Comprobamos los MockCalls
console.log(mockValidateEmail.mock.calls);

En la consola, veríamos algo como esto: [['[email protected]']]. Eso es un MockCall. Está mostrando que nuestra función se llamó una vez con el argumento ‘[email protected]‘.

¿Por qué es importante conocer los MockCalls?

La información de MockCalls nos permite hacer pruebas más exhaustivas y precisas. Al utilizarlas, nos aseguramos de que nuestras funciones se llaman de la forma que esperamos y con los argumentos correctos. Así, evitamos errores que podrían pasar desapercibidos y garantizamos que nuestro software funciona de manera óptima.

Entender los MockCalls en Jest y saber cómo utilizarlos correctamente puede marcar una gran diferencia en la calidad de tus pruebas y, por ende, en la calidad de tu software. Si quieres aprender mucho más sobre ellos y otros muchos conceptos y herramientas útiles en este mundillo, el Desarrollo Web Full Stack Bootcamp de KeepCoding es justo lo que necesitas.

En esta formación íntegra de alta intensidad no solo aprenderás sobre testing y Jest, sino sobre todo lo necesario para ser un desarrollador web profesional. ¿Quieres dominar la tecnología más puntera a través de una formación teórica y práctica? ¡Pide más información ya mismo sobre el bootcamp y descubre cómo impulsar tu carrera en poco tiempo!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado