콘텐츠로 이동

테스트 주도 개발 실전 강의 교재

27장 — 테스팅 패턴

대상: Java/Spring 백엔드 입문~중급 수강생


0. 학습 목표

테스트 코드 작성 시 자주 쓰는 패턴.


27장 패턴

자식 테스트

큰 테스트가 너무 큼 → 작은 자식 테스트들로 분해. 각각 통과시키면 부모 자동 통과.

가짜 객체 (Mock Object)

협력 객체를 가짜 구현 으로 대체. 테스트 단위 격리. → JUnit + Mockito.

셀프 션트 (Self Shunt)

테스트 클래스가 자기 자신 을 협력 객체로 사용. 가벼운 mock.

로그 문자열

부작용 추적이 필요할 때 호출 순서를 문자열로 기록. "begin end" 같은 형식으로 검증.

크래시 테스트 더미

호출되면 즉시 예외 던지는 가짜. "이 경로는 절대 안 와야" 검증.

깨진 테스트

종료 시 테스트 1개를 일부러 깨진 상태로. 다음 날 시작 시 "여기부터" 가 명확.

깨끗한 체크인

팀 작업 시 푸시 전 모든 테스트 통과. 다른 사람이 빨강 받지 않게.


JUnit + Mockito 매핑

// 가짜 객체
@Mock private OrderRepository repo;

// 셀프 션트
class OrderServiceTest implements PaymentGateway {
    private int chargedAmount;
    @Override public PaymentResult charge(Money amount, Card card) {
        this.chargedAmount = amount.value();
        return PaymentResult.SUCCESS;
    }
}

다음 장 예고 — 28장: 초록 막대 패턴

초록 (통과) 단계에 자주 쓰는 빠른 통과 기법.