Cómo usar MockResolveValue en tus test

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

Algunos de nuestros reconocimientos:

Premios KeepCoding

El arte de probar eficazmente nuestro código es una habilidad que todo desarrollador web necesita dominar. Una herramienta que tiene un papel fundamental en la creación de pruebas robustas y confiables es MockResolveValue en Jest. Entender y saber usar MockResolveValue puede llevar tus habilidades de pruebas al siguiente nivel.

¿Qué es una mock function?

Una función simulada o mock se encarga de reemplazar funciones reales en el código durante las pruebas. Estas funciones simuladas, que podemos crear con Jest, nos permiten controlar si se llaman correctamente, con qué argumentos y qué devuelven.

Por ejemplo, si tu código tiene una función que realiza una petición a una API, durante las pruebas probablemente no quieras que se realice la petición real y aquí es donde las funciones simuladas entran en juego.

Usar MockResolveValue en Jest

La función MockResolveValue es una herramienta muy útil que se utiliza cuando quieres que tu mock devuelva una promesa resuelta. En lugar de tener que configurar manualmente una promesa, MockResolveValue lo hace por ti.

En otras palabras, con MockResolveValue podemos simular una promesa resuelta. Es decir, podemos hacer que nuestra función devuelva un valor específico de forma asíncrona, sin tener que esperar a que se resuelva una promesa real. Esto es esencial para probar cómo maneja nuestro código los datos devueltos por estas promesas.

Digamos que tienes una función que le pide a una API los detalles de un usuario y quieres probar esa función. Sin embargo, no quieres hacer la solicitud real en tus pruebas. Aquí es donde MockResolveValue es útil.

// Una función de mock que devuelve una promesa resuelta
const getUserDetails = jest.fn().mockResolvedValue({
  id: 1,
  name: 'John Doe',
  email: '[email protected]'
});

Cuando llames a getUserDetails() en tus pruebas, devolverá inmediatamente una promesa resuelta con los detalles del usuario. Así, puedes probar cómo tu código maneja la respuesta sin tener que preocuparte por hacer la solicitud real a la API.

Resetting y spy en Jest

Jest ofrece otra dos funciones útiles: beforeEach y jest.spyOn.

  • beforeEach te permite definir un bloque de código que se ejecutará antes de cada prueba. Esto es útil cuando necesitas configurar un estado inicial para tus pruebas.
  • jest.spyOn te permite espiar funciones existentes, lo que significa que puedes ver cómo se llaman, con qué argumentos y qué devuelven, sin cambiar su implementación. Esto es útil cuando quieres probar cómo se llama a una función sin cambiar su comportamiento.

En conclusión, MockResolveValue es una herramienta poderosa en tu arsenal de pruebas. Te permite controlar el comportamiento de tus funciones y probar cómo manejan diferentes resultados.

Sigue aprendiendo cada vez más

¿Quieres aprender más sobre desarrollo web y pruebas de software? En el Desarrollo Web Full Stack Bootcamp de KeepCoding, te enseñamos no solo a escribir código, sino también a pensar como un verdadero desarrollador. Te damos las habilidades que necesitas para entrar en el emocionante mundo de la tecnología y cambiar tu vida. El sector tecnológico es una industria con una alta demanda de profesionales que ofrece salarios altos y una estabilidad laboral que otros sectores no ofrecen. ¡No esperes más, únete a nosotros y empieza tu nuevo camino en el mundo del desarrollo web!

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