[typescript] 타입스크립트와 Jest를 사용하여 모의 객체(Mock Object)를 생성하여 테스트하는 방법

소프트웨어 개발에서 테스트는 매우 중요합니다. 모의 객체(Mock Object)를 사용하여 코드를 테스트하는 것은 이에 큰 도움을 줍니다.

이번 포스트에서는 타입스크립트(TypeScript)와 Jest를 사용하여 모의 객체를 생성하는 방법을 살펴보겠습니다.

모의 객체란 무엇인가요?

모의 객체는 특정한 동작을 흉내내는 객체로, 테스트 시 실제 객체를 대신하여 사용됩니다. 모의 객체는 실제 객체의 동작을 시뮬레이션하고, 결과를 정의함으로써 해당 동작이 제대로 이루어졌는지를 테스트할 수 있게 해줍니다.

Jest를 사용하여 타입스크립트에서 모의 객체 만들기

먼저, Jest를 설치합니다.

npm install --save-dev jest @types/jest ts-jest

그런 다음, ts-jest 설정 파일(tsconfig.json)에 아래와 같이 설정을 추가합니다.

{
  "compilerOptions": {
    "types": ["jest"]
  }
}

이제 모의 객체를 만들어보겠습니다. 예를 들어, 다음과 같은 클래스가 있다고 가정해봅시다.

// Greeter.ts
export default class Greeter {
  greet(name: string): string {
    return `Hello, ${name}!`;
  }
}

위의 Greeter 클래스를 테스트하는 경우, 다음과 같이 모의 객체를 사용할 수 있습니다.

// Greeter.test.ts
import Greeter from './Greeter';

test('greet', () => {
  const mockGreet = jest.fn();
  const greeter = new Greeter();
  greeter.greet = mockGreet;

  greeter.greet('World');

  expect(mockGreet).toHaveBeenCalledWith('World');
});

위의 예시에서 jest.fn()을 사용하여 Greet 메서드의 모의 객체를 만들었습니다. 그리고 greeter.greet에 모의 객체를 할당하여 greeter.greet가 호출될 때 모의 객체가 실행되도록 했습니다.

결론

이렇듯 Jest를 사용하여 타입스크립트에서 모의 객체를 쉽게 생성하고 테스트할 수 있습니다. 모의 객체를 사용함으로써 코드 품질을 향상시키고, 버그를 줄이는 데 도움이 됩니다.

위의 예시를 참고하여, 코드 테스트 시 모의 객체를 적극적으로 활용하여 안정성을 높이는 것을 권장합니다.