테스트 코드 작성, 5분 만에 끝내는 프롬프트

Author: Zzabbis // Date: 2026-02-04

📝 테스트 코드 작성, 5분 만에 끝내는 프롬프트

“코드 짜기도 바쁜데 테스트 코드를 언제 다 만들어요?”

테스트 코드의 중요성은 모두가 알지만, 막상 짜려면 메인 로직보다 시간이 더 걸릴 때가 많습니다. 엣지 케이스(Edge Case) 생각하랴, 모킹(Mocking) 하랴… 머리 아프셨죠? 이제 비즈니스 로직만 붙여넣으세요. 꼼꼼한 테스트 코드는 AI가 작성해 드립니다.


⚡️ 3줄 요약 (TL;DR)

  1. 정상 동작(Happy Path)뿐 아니라 예외 케이스까지 커버
  2. 널리 쓰이는 테스트 프레임워크 문법 완벽 지원
  3. Mock 데이터 자동 생성

🚀 해결책: “유닛 테스트 생성기”

아래 PROMPT 내용을 복사해서 사용하세요.

역할 (Role): 너는 꼼꼼하고 완벽주의적인 QA 엔지니어이자 테스트 자동화 전문가야.

상황 (Context): 나는 [사용 언어/프레임워크]로 작성된 코드를 가지고 있어. 이 코드의 신뢰성을 높이기 위해 유닛 테스트(Unit Test)가 필요해.

요청 (Task):

  1. 제공된 코드를 분석하여 테스트 케이스 목록을 먼저 작성해줘. (성공 케이스, 실패 케이스, 경계값 분석 포함)
  2. [테스트 라이브러리 이름 (예: Jest, PyTest, JUnit)]를 사용하여 실행 가능한 테스트 코드를 작성해줘.
  3. 외부 의존성이 있다면 Mocking 처리를 해줘.
  4. 각 테스트 케이스에 대해 무엇을 검증하는지 주석을 달아줘.

코드:

[여기에 테스트할 코드를 붙여넣으세요]

제약사항 (Constraints):

  • 테스트 커버리지가 가능한 높게 나오도록 다양한 시나리오를 포함해.
  • 코드는 즉시 복사해서 실행할 수 있는 형태로 제공해.
  • 테스트 설명(Description)은 한글로 작성해줘.

🧬 프롬프트 해부 (Why it works?)

이 프롬프트가 강력한 이유는 3가지 논리적 장치 때문입니다.

  1. 시나리오 선행: 무작정 코드를 짜는 게 아니라, 어떤 케이스를 테스트할지 먼저 리스팅하게 하여 누락을 방지합니다.
  2. 경계값 분석 요청: 에러가 가장 많이 발생하는 경계값(Boundary Value) 테스트를 명시적으로 요구했습니다.
  3. 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’ 버튼을 누르세요! 🍷