es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tengo una burla de prueba (jest mock), ¿cómo puedo importarla a múltiples archivos de prueba?

Estoy escribiendo algunas pruebas para unos componentes que utilizan Next/Image. Como sigo obteniendo errores, decidí simular el módulo de esta manera:

jest.mock(
    `next/image`,
    () =>
        function Image({ src, alt }) {
            // eslint-disable-next-line @next/next/no-img-element
            return <img src="{src}" alt="{alt}">;
        },
);

Hasta aquí todo bien, esto funciona muy bien. PERO tengo varios componentes que usan next/image y necesito usar esta simulación en esos archivos de prueba. Mi solución actual es copiar y pegar, pero eso es estúpido. He intentado crear algo así como un módulo que pueda incluir en config/setup.js o simplemente importarlo, pero no puedo encontrar la manera de hacerlo.

Cualquier ayuda sería muy apreciada, estoy bastante seguro de que esto es algo simple y probablemente esté teniendo un fallo de cerebro post-almuerzo de viernes.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para reutilizar el módulo next/image burlado en varios archivos de prueba, puede crear un archivo separado donde exporta la función burlada:

    //mockNextImage.js
    export default function mockNextImage() {
      jest.mock(
        `next/image`,
        () => function Image({ src, alt }) {
          return <img src="{src}" alt="{alt}">;
        }
      );
    }
    

    Luego, en sus archivos de prueba, simplemente puede importar esta función y llamarla antes de ejecutar sus pruebas:

    import mockNextImage from './mockNextImage';
    
    beforeAll(() => {
      mockNextImage();
    });
    
    // Tus pruebas aquí
    

    De esta manera, solo necesita escribir la función burlada una vez y puede reutilizarla fácilmente en todos sus archivos de prueba.

Comments are closed.