Jest Mock in TypeScript
Wir stellen Jest Mock
und seine Verwendung in TypeScript anhand eines Beispiels vor.
Jest Mock in TypeScript
Bei der Arbeit an kommerziellen Anwendungen, die für die Benutzer perfekt sein müssen, müssen wir sicherstellen, dass jedes Modul so funktioniert, wie wir es möchten. Zu diesem Zweck verwenden wir Jest-Mocks in TypeScript.
Jest Mock ist ein Testframework für eine große Webanwendung. Durch die Verwendung der Funktion mock
können wir die Module einer Funktion ausspionieren, die indirekt von einem anderen Code aufgerufen wird, anstatt nur die Ausgabe zu testen.
Die Funktion mock
gibt beim Aufruf undefined
zurück, wenn keine Implementierung angegeben ist. Wir können ganz einfach die Funktion jest.mock()
verwenden, wie unten gezeigt.
import * as dependency from '../someModule';
jest.mock('../someModule');
Die Funktion jest.mock()
ändert den Typ der Abhängigkeit, weshalb wir nach dem Aufruf der Funktion jest.mock()
in TypeScript die Typumwandlung verwenden müssen. Wir können die Typumwandlung einfach aufrufen, indem wir die Methode typeof
in TypeScript verwenden.
Lassen Sie uns ein Beispiel durchgehen, in dem wir ein automatisches Mock verwenden, um das Modul zu testen, das wir in TypeScript importieren, wie unten gezeigt.
import { testClass } from './testClass';
jest.mock('./testClass');
const mockClass = <jest.Mock<testClass>>testClass;
Aber wenn wir das Modul oder die Klasse manuell mocken wollen, können wir das auch einfach tun. Lassen Sie uns ein Beispiel durchgehen, in dem wir die Klasse manuell verspotten, wie unten gezeigt.
import testClass from './testClass';
import testClassDependency from './testClassDependency';
const testMockClassDependency = jest.fn<testClassDependency>(() => ({
}));
it('Throw an error', () => {
const testClass1 = new testClass(testMockClassDependency());
});
Wie wir im obigen Beispiel sehen können, erstellt die testMockClassDependency
eine verspottete Objektinstanz. Anstelle von testClassDependency
können wir eine Klasse, einen Typ oder eine Schnittstelle verwenden.
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