Utilizar MockContexts para mejorar test en Jest

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

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Alguna vez te has sentido abrumado por el aparentemente complejo mundo de las pruebas en React? ¿Pasas más tiempo en Stack Overflow que escribiendo código real? En este post, vamos a desmitificar una parte fundamental de las pruebas en React con Jest: ¡los MockContexts!

Seguro que alguna vez has oído decir que las pruebas son una parte esencial de cualquier proceso de desarrollo, pero ¿te has preguntado por qué es tan importante? ¿Y por qué es vital conocer y utilizar técnicas como los MockContexts cuando trabajamos con Jest en React? Las pruebas no solo nos ayudan a garantizar que nuestro código funciona como se espera, sino que también nos permiten detectar errores antes de que lleguen a producción, lo que nos ahorra tiempo y problemas.

Introducción a React Context

Para entender los MockContexts, primero necesitamos entender qué es React Context. Los contextos en React son una forma poderosa y flexible de manejar el estado y pasar datos a través de la jerarquía de componentes sin necesidad de pasar props manualmente a cada nivel.

const MyContext = React.createContext(defaultValue);

¿Qué son los MockContexts?

Un MockContext es una técnica que utilizamos en las pruebas para simular el comportamiento de un React Context. Básicamente, nos permite definir valores de prueba para nuestro contexto, lo que nos permite probar cómo se comportan nuestros componentes en diferentes situaciones.

¿Por qué MockContexts?

Los MockContexts son una herramienta esencial para las pruebas en React por varias razones:

  1. Flexibilidad: nos permiten simular diferentes estados y comprobar cómo reacciona nuestro componente en cada situación.
  2. Aislamiento: nos ayudan a probar componentes en aislamiento sin depender del estado global de la aplicación.
  3. Control: nos dan un control total sobre los datos que recibe nuestro componente, lo que nos permite encontrar y solucionar errores más fácilmente.

Crear y usar MockContexts en Jest

Ahora que ya conoces la teoría, veamos cómo podemos usar los MockContexts en nuestras pruebas con Jest. Aquí hay una guía paso a paso.

Crear un contexto mock

Lo primero que necesitamos hacer es crear nuestro contexto mock. Esto es tan sencillo como crear un contexto normal en React, pero con datos de prueba en lugar de datos reales.

const mockContext = React.createContext();

Proveer el contexto mock

Luego, necesitamos proveer nuestro contexto mock a nuestro componente. Esto se hace utilizando el Provider del contexto, al igual que haríamos en nuestra aplicación real.

const { Provider } = mockContext;

Utilizar el contexto mock en nuestras pruebas

Ahora que tenemos nuestro contexto mock listo, podemos usarlo en nuestras pruebas. Usamos Jest para crear la prueba y React Testing Library para renderizar nuestro componente con el contexto mock.

test("my component should render correctly", () => {
  render(
    <Provider value={mockValue}>
      <MyComponent />
    </Provider>
  );
});

Así, hemos creado y utilizado con éxito un MockContext en nuestras pruebas con Jest.

Anímate a seguir aprendiendo

Los MockContexts son una herramienta poderosa para mejorar la calidad y la flexibilidad de nuestras pruebas en React con Jest. Nos ayudan a probar nuestros componentes en diferentes situaciones y nos dan un mayor control sobre los datos que utilizamos en nuestras pruebas.

¿Te gustaría dominar estos conceptos y muchos más? Inscríbete en el Desarrollo Web Full Stack Bootcamp de KeepCoding y fórmate a nivel práctico y teórico para convertirte en un experto en todas las tecnologías y técnicas necesarias para ser un desarrollador web de primer nivel. ¡Solicita información e impulsa tu futuro ya mismo!

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