🤖
673 in / 895 out / 1568 total tokens
문자열 매칭 대신 실제 에러 클래스로 테스트 신뢰성을 높였다.
기존엔 toThrow('DATABASE_ERROR')처럼 메시지 문자열로 에러를 검증했다. 이 방식은 에러 메시지가 바뀌거나 오타가 있어도 테스트 통과 여부를 보장할 수 없다. DatabaseError 클래스를 직접 import해서 toThrow(DatabaseError)로 변경했다. route.test.ts의 mock도 일반 Error 대신 DatabaseError 인스턴스를 던지도록 수정했다.
import { DatabaseError } from '@/lib/errors';
// Before: 문자열 매칭
await expect(fn()).rejects.toThrow('DATABASE_ERROR');
// After: 클래스 기반 검증
await expect(fn()).rejects.toThrow(DatabaseError);635개 테스트 전부 통과. 커버리지 67.49% 유지했다. 문자열 매칭은 빠르지만 타입 안전성이 없다. 커스텀 에러 클래스 만들어놨으면 그걸 써야지.