”동작하는 코드”를 넘어 “신뢰할 수 있는 코드”를 만들기 위한 최소 단위의 검증 과정, 단위 테스트(Unit Test)의 기초와 설계 원칙을 분석한다.
테스트 구조의 표준: Given-When-Then
의도가 명확한 테스트 코드를 작성하기 위해 표준화된 패턴을 사용한다.
- Given: 테스트 수행을 위한 환경과 입력 데이터 준비.
- When: 검증하고자 하는 실제 기능 호출.
- Then: 실행 결과가 예상과 일치하는지 단언(Assert) 및 검증.
좋은 테스트의 기준: FIRST 원칙
- Fast: 매우 빠르게 실행되어야 한다.
- Independent: 각 테스트 간의 의존성이 없어야 한다.
- Repeatable: 어떤 환경에서도 동일한 결과가 보장되어야 한다.
- Self-Validating: 테스트 스스로 성공 여부를 판단해야 한다.
- Timely: 실제 코드 구현과 병행하여 작성되어야 한다.
설계 개선 효과
단위 테스트 작성은 단순히 버그를 찾는 행위가 아니다.
테스트하기 쉬운 코드를 고민하다 보면 자연스럽게 클래스 간 결합도가 낮아지고 응집도가 높아지는 설계 품질 향상을 경험하게 된다.
P.S
단위 테스트는 시스템의 안정성을 지탱하는 가장 견고한 그물망이다.
작은 기능부터 철저히 검증하는 습관이 대규모 시스템의 유지보수 비용을 획기적으로 줄여준는 것 같다.