TypeScript의 Jest 모의

Rana Hasnain Khan 2022년8월18일
TypeScript의 Jest 모의

Jest Mock과 TypeScript에서 사용하는 방법을 예제와 함께 소개합니다.

TypeScript의 Jest 모의

사용자에게 완벽해야 하는 상용 응용 프로그램을 작업할 때 각 모듈이 원하는 대로 작동하는지 확인해야 합니다. 이를 위해 TypeScript에서 Jest 모의를 사용합니다.

Jest mock은 대규모 웹 애플리케이션을 위한 테스트 프레임워크입니다. mock 함수를 사용하여 출력만 테스트하는 대신 다른 코드에 의해 간접적으로 호출된 함수의 모듈을 감시할 수 있습니다.

구현이 제공되지 않은 경우 mock 함수는 호출될 때 undefined를 반환합니다. 아래와 같이 jest.mock() 함수를 쉽게 사용할 수 있습니다.

import * as dependency from '../someModule';
jest.mock('../someModule');

jest.mock() 함수는 종속성의 유형을 변경하므로 TypeScript에서 jest.mock() 함수를 호출한 후 유형 캐스팅을 사용해야 합니다. TypeScript에서 typeof 메소드를 사용하여 유형 캐스팅을 쉽게 호출할 수 있습니다.

아래와 같이 TypeScript로 가져온 모듈을 테스트하기 위해 자동 모의를 사용하는 예제를 살펴보겠습니다.

import { testClass } from './testClass';

jest.mock('./testClass');

const mockClass = <jest.Mock<testClass>>testClass;

그러나 모듈이나 클래스를 수동으로 조롱하려는 경우에도 쉽게 할 수 있습니다. 아래와 같이 클래스를 수동으로 조롱하는 예를 살펴보겠습니다.

import testClass from './testClass';
import testClassDependency from './testClassDependency';

const testMockClassDependency = jest.fn<testClassDependency>(() => ({

}));

it('Throw an error', () => {
  const testClass1 = new testClass(testMockClassDependency());
});

위의 예에서 볼 수 있듯이 testMockClassDependency는 모의 객체 인스턴스를 생성합니다. testClassDependency 대신 클래스, 유형 또는 인터페이스를 사용할 수 있습니다.

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

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