typescript - ¿Cómo uso los mocks de Jest fuera de un entorno de pruebas?
Espero aprovechar jest.mock() en una situación que no sea de prueba. Quiero cambiar la funcionalidad de un módulo externo. En el código de prueba, ya estoy usando jest.mock() para simular una función del módulo de manera que simplemente devuelva true siempre; ahora quiero hacer exactamente lo mismo desde una aplicación web independiente.
No sé cómo obtener el objeto mágico jest en el código de mi aplicación como lo hago en mi código de prueba, así que he añadido import { jest } from "@jest/globals";. Esto hace que jest.mock() esté disponible y se vea bien en mi IDE. Desafortunadamente, cuando ejecuto mi aplicación, aparece
throw new Error(
^
Error: Do not import `@jest/globals` outside of the Jest test environment
¿Cómo puedo solucionar esto? Estoy dispuesto a hacer cualquiera de:
- omitir la verificación y simplemente "hacer que funcione";
- hacer que mi aplicación sea en realidad una prueba o de alguna manera alojar un entorno de prueba Jest; o
- utiliza una herramienta diferente que sí permita la simulación de módulos en entornos que no sean de prueba.
Respuesta #1
Una solución que tengo funcionando, pero con la que no estoy particularmente contento, es:
- Actualiza jest.config.js (o la configuración de Jest que estés usando) para definir index.ts como un archivo de prueba.
- Envuelve los contenidos importantes del archivo index.ts en un bloque
describe().
Esta es una solución desagradable, y no voy a aceptar esta respuesta :)