Chuck's Academy

Testing JavaScript y DOM con DOM Testing Library

Mocking y stubbing en Testing Library

Al escribir pruebas, a menudo es necesario imitar ciertos comportamientos o dependencias para aislar el código que estamos probando. Este proceso se conoce como "mocking" y "stubbing". En este capítulo, aprenderemos cómo realizar esas técnicas utilizando DOM Testing Library junto con Jest.

¿Qué es Mocking y Stubbing?

  • Mocking: Crear implementaciones falsas de funciones o módulos para simular su comportamiento.
  • Stubbing: Sustituir una función específica por una versión predefinida que simula una respuesta o un comportamiento.

Escenario de Ejemplo

Vamos a usar un escenario donde un componente realiza una llamada a una API para obtener datos y mostrar el resultado. En lugar de hacer una llamada real a la API, usaremos mocking y stubbing para simular la respuesta.

Crear el Componente

Archivo index.js:

javascript

Prueba con Mocking usando Jest

Vamos a escribir una prueba que simula la llamada a la API y verifica que el componente muestra los datos correctamente.

Archivo component.test.js:

javascript

Estubs con Jest

En algunos casos, es posible que no necesitemos mockear toda una función o módulo, sino simplemente reemplazar una función específica.

Ejemplo de Stubbing:

javascript

[Placeholder para imagen explicativa: Diagrama que muestra cómo se realiza el mocking y el stubbing en Jest, desde la simulación de la función hasta la verificación de resultados en el DOM]

Beneficios del Mocking y Stubbing

  • Aislamiento de Pruebas: Permite probar componentes en aislamiento sin depender de servicios externos.
  • Consistencia: Garantiza resultados consistentes en las pruebas al controlar las respuestas.
  • Reducción de Tiempo: El mocking y el stubbing pueden hacer que las pruebas sean más rápidas al evitar llamadas a redes reales.

Conclusión

En este capítulo, has aprendido cómo usar mocking y stubbing en tus pruebas con DOM Testing Library y Jest. Estas técnicas son esenciales para asegurar que puedes probar tu código en aislamiento, garantizando resultados confiables y consistentes sin importar las dependencias externas.

En los próximos capítulos, nos adentraremos en las pruebas de interacciones complejas del usuario y en las pruebas de accesibilidad.


Pregúntame lo que sea