Chuck's Academy

Testing JavaScript y DOM con Jest

Mocking y Stubbing en Jest

Mocking y Stubbing en Jest

En el mundo del testing, mocking y stubbing son técnicas esenciales para aislar el código bajo prueba y controlar sus dependencias. Esta sección explicará qué son estas técnicas y cómo utilizarlas con Jest.

¿Qué es Mocking y Stubbing?

  • Mocking: Consiste en crear objetos falsos que simulan el comportamiento de objetos reales. Esto se utiliza para probar componentes en aislamiento.
  • Stubbing: Similar al mocking, pero se enfoca más en reemplazar funciones específicas dentro de los objetos con implementaciones controladas.

Mock Functions en Jest

Jest proporciona funciones de mocking que te permiten espiar el comportamiento de funciones existentes o reemplazarlas con simulaciones.

  1. Creando una Mock Function:
javascript
  1. Mocking Funciones con Implementaciones Simuladas:

Puedes proporcionar una implementación simulada a una función mock utilizando mockImplementation.

javascript
  1. Mocking de Módulos Enteros:

Puedes mockear módulos completos usando jest.mock. Por ejemplo, supongamos que tienes un módulo api.js:

javascript

Puedes mockear este módulo en tus pruebas:

javascript

Mocking de Funciones Asíncronas

Puedes mockear funciones asíncronas para simular la resolución o el rechazo de promesas:

javascript

Mocking de Métodos de Instancia

Si quieres mockear métodos de una clase específica, puedes usar jest.spyOn o sobrescribir el método directamente:

javascript

Stubbing en Jest

Para stub functions, puedes reemplazar temporalmente sus implementaciones:

javascript

Uso de Mock Clear y Reset

Para evitar conflictos entre pruebas, puedes limpiar y restablecer mocks utilizando mockClear o mockReset.

javascript

Ejemplo Completo

A continuación, un ejemplo completo que demuestra el mocking y el stubbing para una función que depende de una llamada a una API:

javascript

Con estas técnicas de mocking y stubbing, puedes aislar el código bajo prueba y simular diferentes escenarios controlados. En la siguiente sección, abordaremos las pruebas de interacciones del usuario con Jest, incrementando así nuestras capacidades para asegurar la calidad e interactuabilidad de nuestra aplicación.


Pregúntame lo que sea