[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를 사용하여 타입스크립트에서 모의 객체를 쉽게 생성하고 테스트할 수 있습니다. 모의 객체를 사용함으로써 코드 품질을 향상시키고, 버그를 줄이는 데 도움이 됩니다.
위의 예시를 참고하여, 코드 테스트 시 모의 객체를 적극적으로 활용하여 안정성을 높이는 것을 권장합니다.