[typescript] 타입스크립트 단위 테스트 작성 시 예외 처리 기법
타입스크립트로 코드를 작성할 때, 단위 테스트를 작성하여 코드의 안정성을 검증하는 것이 매우 중요합니다. 하지만 코드를 테스트할 때 예외 상황을 다루는 것은 더욱 중요합니다. 특히 타입스크립트에서는 다양한 예외 처리 기법을 활용하여 안정적인 코드를 작성할 수 있습니다.
1. try/catch문 활용
가장 기본적인 예외 처리 방법은 try/catch
문을 사용하는 것입니다. 함수나 메서드 내에서 예외가 발생할 수 있는 부분을 try
블록 안에 작성하고, 발생한 예외를 catch
블록에서 처리할 수 있습니다.
예시:
function divide(a: number, b: number): number {
try {
if (b === 0) {
throw new Error('Divisor cannot be 0');
}
return a / b;
} catch (error) {
console.error(error);
return -1;
}
}
2. Jest를 이용한 테스트
타입스크립트에서는 Jest와 같은 테스팅 프레임워크를 활용하여 예외 처리를 보다 편리하게 할 수 있습니다. Jest를 사용하면 expect
문을 통해 예외 발생을 테스트하는 방법 등 다양한 기능을 사용할 수 있습니다.
예시:
function divide(a: number, b: number): number {
if (b === 0) {
throw new Error('Divisor cannot be 0');
}
return a / b;
}
test('divide', () => {
expect(() => divide(10, 0)).toThrow('Divisor cannot be 0');
});
3. 커스텀 에러 타입 활용
타입스크립트에서는 커스텀 에러 타입을 정의하여 특정 예외 상황을 구분할 수 있습니다. 이를 통해 각각의 예외에 대해 보다 구체적인 처리를 할 수 있으며, 코드의 가독성과 유지보수성을 높일 수 있습니다.
예시:
class DivideByZeroError extends Error {
constructor(message: string) {
super(message);
this.name = 'DivideByZeroError';
}
}
function divide(a: number, b: number): number {
if (b === 0) {
throw new DivideByZeroError('Divisor cannot be 0');
}
return a / b;
}
마무리
위 예제들은 타입스크립트에서의 예외 처리에 대한 몇 가지 기본적인 기법을 다룬 것입니다. try/catch문을 사용하여 예외를 처리하거나 Jest를 통해 테스트하는 방법, 그리고 커스텀 에러 타입을 활용하는 방법 등을 적절히 활용하여 안정적이고 견고한 코드를 작성할 수 있습니다.
더 많은 정보는 타입스크립트 공식 문서를 참고할 수 있습니다.