테스트 코드 작성, 5분 만에 끝내는 프롬프트
📝 테스트 코드 작성, 5분 만에 끝내는 프롬프트
- 🎯 추천 대상: TDD가 좋은 건 알지만 실천이 어려운 개발자
- ⏱️ 소요 시간: 2시간 → 5분 단축
- 🤖 추천 모델: 모든 대화형 AI (ChatGPT, Claude, Gemini 등)
“코드 짜기도 바쁜데 테스트 코드를 언제 다 만들어요?”
테스트 코드의 중요성은 모두가 알지만, 막상 짜려면 메인 로직보다 시간이 더 걸릴 때가 많습니다. 엣지 케이스(Edge Case) 생각하랴, 모킹(Mocking) 하랴… 머리 아프셨죠? 이제 비즈니스 로직만 붙여넣으세요. 꼼꼼한 테스트 코드는 AI가 작성해 드립니다.
⚡️ 3줄 요약 (TL;DR)
- 정상 동작(Happy Path)뿐 아니라 예외 케이스까지 커버
- 널리 쓰이는 테스트 프레임워크 문법 완벽 지원
- Mock 데이터 자동 생성
🚀 해결책: “유닛 테스트 생성기”
아래 PROMPT 내용을 복사해서 사용하세요.
역할 (Role): 너는 꼼꼼하고 완벽주의적인 QA 엔지니어이자 테스트 자동화 전문가야.
상황 (Context): 나는
[사용 언어/프레임워크]로 작성된 코드를 가지고 있어. 이 코드의 신뢰성을 높이기 위해 유닛 테스트(Unit Test)가 필요해.요청 (Task):
- 제공된 코드를 분석하여 테스트 케이스 목록을 먼저 작성해줘. (성공 케이스, 실패 케이스, 경계값 분석 포함)
[테스트 라이브러리 이름 (예: Jest, PyTest, JUnit)]를 사용하여 실행 가능한 테스트 코드를 작성해줘.- 외부 의존성이 있다면 Mocking 처리를 해줘.
- 각 테스트 케이스에 대해 무엇을 검증하는지 주석을 달아줘.
코드:
[여기에 테스트할 코드를 붙여넣으세요]제약사항 (Constraints):
- 테스트 커버리지가 가능한 높게 나오도록 다양한 시나리오를 포함해.
- 코드는 즉시 복사해서 실행할 수 있는 형태로 제공해.
- 테스트 설명(Description)은 한글로 작성해줘.
🧬 프롬프트 해부 (Why it works?)
이 프롬프트가 강력한 이유는 3가지 논리적 장치 때문입니다.
- 시나리오 선행: 무작정 코드를 짜는 게 아니라, 어떤 케이스를 테스트할지 먼저 리스팅하게 하여 누락을 방지합니다.
- 경계값 분석 요청: 에러가 가장 많이 발생하는 경계값(Boundary Value) 테스트를 명시적으로 요구했습니다.
- Mocking 요구: 테스트하기 까다로운 외부 API나 DB 연결을 가짜 객체(Mock)로 처리하도록 지시하여 테스트 독립성을 확보했습니다.
📊 증명: Before & After
❌ Before (입력 코드)
function divide(a, b) {
if (b === 0) throw new Error("0으로 나눌 수 없습니다.");
return a / b;
}✅ After (결과)
describe("divide 함수 테스트", () => {
// 1. 정상 동작 테스트
test("10을 2로 나누면 5가 되어야 한다", () => {
expect(divide(10, 2)).toBe(5);
});
// 2. 예외 처리 테스트
test("0으로 나누면 에러가 발생해야 한다", () => {
expect(() => divide(10, 0)).toThrow("0으로 나눌 수 없습니다.");
});
// 3. 경계값/특수값 테스트
test("음수를 나누면 음수가 되어야 한다", () => {
expect(divide(-10, 2)).toBe(-5);
});
});🚨 트러블 슈팅 (안 될 땐 이렇게!)
Q. 테스트 라이브러리 문법이 옛날 버전이에요. A. 요청 사항에 “Jest 최신 버전 문법(v29 이상)을 사용해줘” 와 같이 버전을 명시하세요.
Q. 복잡한 로직이라 테스트가 너무 길어요. A. “가장 핵심적인 비즈니스 로직 3가지만 테스트해줘” 라고 범위를 좁히세요.
🎯 결론
버그는 배포된 후에 발견하면 수정 비용이 100배로 뜁니다. 이 프롬프트로 개발 단계에서 버그를 박멸하고, 자신 있게 ‘Merge’ 버튼을 누르세요! 🍷