
백엔드
코드 품질 개선 기법 4편: 문을 없애고 테스트하기
두줄요약
단위 테스트는 내부 구현보다 관찰 가능한 동작과 사양 일치를 검증하는 편이 바람직합니다. 반환값과 외부 객체 상호작용을 중심으로 테스트를 작성해야 유지보수성이 높아졌습니다.
핵심 내용
- 단위 테스트는 내부 구현 세부보다 관찰 가능한 동작과 사양 일치 여부를 검증하는 방식이 바람직함
- 반환값과 예외, 외부 객체와의 상호작용을 중심으로 테스트 범위를 잡는 것이 안정적임
- 내부 상태를 직접 들여다보는 테스트는 구현 변경에 취약해 유지보수성을 떨어뜨릴 수 있음
적용해볼 점
- 프로덕션 코드의 가시성을 테스트 편의로 바꾸기보다 공개된 동작을 검증하는 테스트로 전환
- mock이나 테스트 스파이는 외부 의존성과의 상호작용 검증이 필요할 때만 선택적으로 사용
- 구현체 변경에도 유지되는 테스트를 기준으로 테스트 설계 재점검