"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo simular las importaciones del módulo ES6 en la broma?

¿Cómo simular las importaciones del módulo ES6 en la broma?

Publicado el 2025-03-24
Navegar:813

How to Mock ES6 Module Imports in Jest?

que el módulo ES6 importa en jest

introducción

Jest proporciona un conjunto completo de herramientas para las pruebas de unidades, incluidos los módulos de burla que se importan en su código. Este artículo explica cómo burlarse de las importaciones del módulo ES6 en Jest, abordando el desafío de las dependencias del módulo de prueba.

declaración de problemas

Module Imports permite a los desarrolladores aislar el comportamiento de un módulo específico mientras ejecuta los módulos dependientes. Sin embargo, el enfoque utilizado en el jazmín, donde las importaciones se reemplazan con espías, no se aplican directamente en Jest debido a su entorno de prueba diferente.

solución

Jest proporciona la importación * sintaxis para importar todas las exportaciones de un módulo como un solo objeto. Esta técnica se puede aprovechar para simular las importaciones del módulo ES6.

que se burla de las exportaciones con nombres

para las exportaciones nombradas, simplemente importe el módulo usando import * y luego muta el objeto exportado para simular la función deseada:

// dependency.js
export const doSomething = (y) => console.log(y);
// myModule.js
import { doSomething } from './dependency';

export default (x) => {
  doSomething(x * 2);
};
// myModule-test.js
import myModule from '../myModule';
import * as dependency from '../dependency';

describe('myModule', () => {
  it('calls the dependency with double the input', () => {
    dependency.doSomething = jest.fn(); // Mutate the named export

    myModule(2);

    expect(dependency.doSomething).toBeCalledWith(4);
  });
});

burlándose exportaciones predeterminadas

para exportaciones predetermonadas, puede importarlas mediante el nombre de modulo de importación desde 'módulo de' módulo de módulo 'y luego mutar el valor predeterminado del objeto importado:

// dependency.js stell stell stell Exportar default (y) => console.log (y);
// dependency.js
export default (y) => console.log(y);
// mymodule.js importar mymodule de './mymodule'; import * como dependencia de '../Dependency'; describir ('mymodule', () => { it ('llama a la dependencia con el doble de entrada', () => { dependencia.default = jest.fn (); // mutar la exportación predeterminada mymodule (2); esperar (dependencia.default) .tobecalled con (4); // afirmar contra el incumplimiento }); });
// dependency.js
export default (y) => console.log(y);

conclusión

usando la sintaxis import * y mutando el objeto exportado, es posible burlarse del módulo ES6 Imports en Jest, permitiéndole probar la funcionalidad de sus módulos mientras está aislando sus dependencias.

Declaración de liberación Este artículo se reproduce en: 1729676733 si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3