Cómo usar MockInstances en Jest para testar

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

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Conoces las MockInstances en Jest? En el siempre cambiante universo del desarrollo web, mantener la calidad y eficacia de nuestro código es de vital importancia. ¿Cómo garantizamos que nuestras funciones se comportan exactamente como esperamos? ¿Cómo comprobamos que manejan adecuadamente los diferentes escenarios y conjuntos de datos? Aquí es donde entran en juego las pruebas unitarias y, dentro de ellas, las capacidades de simulación o mocking de Jest.

Uno de los aspectos más poderosos de Jest son las MockInstances. Piensa en las MockInstances en Jest como huellas dactilares que dejan tus funciones simuladas o mocks cada vez que se ejecutan. Cada una de estas instancias guarda información valiosa sobre cómo se realizó una llamada a la función. Esto te permite hacer seguimiento de detalles como los argumentos pasados, el contexto de ‘this’ y mucho más.

Entendiendo las mock functions

Antes de meternos de lleno con las MockInstances en Jest, primero vamos a recordar qué son las mock functions. En el mundo de las pruebas, una mock function es un tipo de función especial que podemos usar para controlar los resultados de las pruebas, espiar las llamadas a funciones y mucho más.

En Jest, la creación de una mock function es tan sencilla como esto:

const mockFunction = jest.fn();

Una vez creada, puedes especificar el comportamiento de esta función usando diferentes métodos, como mockFn.mockReturnValue() o mockFn.mockImplementation(), entre otros.

¿Qué son las MockInstances en Jest?

Ahora que ya tienes un entendimiento básico de las mock functions, hablemos sobre las MockInstances. En Jest, una MockInstance es un objeto que se crea cada vez que se llama a una mock function. En términos simples, es un registro de la llamada a la función, que contiene información sobre cómo se hizo la llamada.

Imagina que estás probando una función que realiza una petición a una API para obtener información del clima. En lugar de hacer una petición real en cada prueba (lo que sería lento y podría incluso bloquear tu acceso a la API si lo haces demasiado), puedes crear una función simulada con Jest. Esta función puede devolver datos predefinidos, de modo que te permite probar cómo tu código maneja diferentes tipos de respuesta.

Con las MockInstances, puedes ver exactamente cómo se llamó a tu función simulada en cada prueba, lo que te ayuda a identificar errores y comportamientos inesperados. Al entender y usar correctamente las MockInstances, te estás asegurando de tener un control total sobre tus pruebas y de que tu código está listo para enfrentarse al mundo real.

¿Por qué son útiles las MockInstances en Jest?

Las MockInstances en Jest te permiten conocer la historia de tus pruebas. Te dirán cómo se hizo cada llamada a la función mock, qué argumentos se pasaron, cuál fue el resultado, etc. Esto es vital para entender y validar el flujo de tu código.

Además, con los métodos mockFn.mockReset() y mockFn.mockRestore() puedes controlar y resetear las MockInstances de tus funciones mock, lo que te da un mayor control sobre el estado de tus pruebas.

Cómo analizar las MockInstances

Hablemos un poco más de cómo trabajar con las MockInstances en Jest. A continuación, te facilitamos una guía paso a paso.

Crear una mock function

La creación de una mock function es tan sencilla como esto:

const mockFunction = jest.fn();

Utilizar la mock function

Luego, puedes utilizar esta mock function en lugar de una función real en tu código. Por ejemplo, podrías tener algo como esto:

function thatUsesAMock(mockFunction) {
  const result = mockFunction("Hello, Jest!");
  return result;
}

Analizar las MockInstances

Aquí es donde las MockInstances entran en juego. Cada vez que se llama a una función mock, Jest crea una MockInstance. Puedes acceder a estas MockInstances a través de mockFn.mock.instances. Por ejemplo:

console.log(mockFunction.mock.instances);

¿Quieres saber más?

Las MockInstances en Jest son una herramienta de prueba poderosa que permite analizar cómo se han utilizado tus funciones mock. Ahora que tienes una comprensión más profunda de cómo usarlas, ¿qué te parece si llevas tus habilidades de desarrollo web al siguiente nivel? Con el Desarrollo Web Full Stack Bootcamp de KeepCoding no solo aprenderás a dominar Jest, sino que te convertirás en un experto en muchas otras tecnologías y prácticas esenciales para cualquier desarrollador web. ¡Pide información y cambia tu vida ahora con KeepCoding!

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