🎁[속보] 인프런 내 깜짝 선물 출현 중🎁

실용적 테스트 가이드 발자국 3주차

### 요약

*단위 테스트(Unit Test)**는 클래스나 메서드 단위로 동작을 검증하여 빠르고 안정적인 피드백을 제공한다.

*통합 테스트(Integration Test)**는 실제 Bean 간의 상호작용을 검증하며, 환경 설정이나 데이터베이스 연결 등 외부 의존성까지 포함된다.

*Spring Test 어노테이션** (@DataJpaTest, @WebMvcTest, @SpringBootTest)을 적절히 활용하여 테스트의 범위와 목적에 맞는 환경을 설정한다.

*Mock 객체**를 활용하여 의존성을 제거하고 테스트 대상을 고립시킨다.

### 📝 회고

*테스트 전략은 계층 구조와 목적에 맞게 선택해야 한다**

* 단위 테스트는 빠르고 명확한 검증에 좋지만, 시스템 전체의 유기적인 동작은 통합 테스트로 확인해야 한다.

*테스트 어노테이션의 정확한 의미를 이해하는 것이 중요하다**

* @WebMvcTest는 Controller만 로드하고, @MockBean으로 의존성을 주입해야 한다.

* @SpringBootTest는 모든 Bean을 로드하므로 무겁고 느릴 수 있으나, 실제 실행 환경과 유사하다.

*테스트 코드는 리팩터링과 유지보수 관점에서도 중요한 자산이다**

테스트가 어렵다는 이유로 생략하지 말고, *필수적인 도메인 로직에는 반드시 단위 테스트를 작성**하는 습관을 들여야 한다.

*Mock을 언제 쓸지, 실제 구현체를 언제 쓸지 판단하는 안목이 필요하다**

* 외부 API나 복잡한 비즈니스 로직은 Mock으로 격리하고, 실제 DB와의 연동은 따로 분리하여 테스트하는 것이 이상적이다.

댓글을 작성해보세요.


채널톡 아이콘