Jest Mock en TypeScript
Presentaremos Jest Mock
y cómo usarlo en TypeScript con un ejemplo.
Jest Mock en TypeScript
Cuando trabajamos en aplicaciones comerciales que necesitan ser perfectas para los usuarios, debemos asegurarnos de que cada módulo funcione como queremos que funcione. Para este propósito, usamos simulacros de Jest en TypeScript.
Jest mock es un marco de prueba para una gran aplicación web. Al usar la función mock
, podemos espiar los módulos de una función llamada indirectamente por algún código diferente en lugar de solo probar la salida.
La función mock
devolverá undefined
cuando se invoque si no se proporciona ninguna implementación. Podemos usar fácilmente la función jest.mock()
como se muestra a continuación.
import * as dependency from '../someModule';
jest.mock('../someModule');
La función jest.mock()
cambiará el tipo de dependencia, por lo que necesitamos usar la conversión de tipos después de llamar a la función jest.mock()
en TypeScript. Podemos llamar fácilmente a la conversión de tipos usando el método typeof
en TypeScript.
Veamos un ejemplo en el que usaremos un simulacro automático para probar el módulo que importamos a TypeScript, como se muestra a continuación.
import { testClass } from './testClass';
jest.mock('./testClass');
const mockClass = <jest.Mock<testClass>>testClass;
Pero si queremos simular el módulo o la clase manualmente, también podemos hacerlo fácilmente. Veamos un ejemplo en el que simularemos la clase manualmente, como se muestra a continuación.
import testClass from './testClass';
import testClassDependency from './testClassDependency';
const testMockClassDependency = jest.fn<testClassDependency>(() => ({
}));
it('Throw an error', () => {
const testClass1 = new testClass(testMockClassDependency());
});
Como podemos ver en el ejemplo anterior, testMockClassDependency
creará una instancia de objeto simulado. Podemos usar clase, tipo o una interfaz en lugar de testClassDependency
.
Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.
LinkedIn