-
단위 테스트 (Unit Test)
- 주로 사용되는 계층: 모든 계층 (Controller, Service, Repository, 등등 )
- 상황
- 로직의 정확성을 검증하고자 할 때
- 외부 시스템에 의존하지 않고 독립적으로 특정 기능이나 메서드를 테스트하고자 할 때.
-
통합 테스트 (Integration Test)
- 주로 사용되는 계층
주로 Service 및 Repository
- 상황
- 여러 컴포넌트나 레이어가 함께 작동하는지 검증하고자 할 때 (ㄸEx 서비스와 레포지토리 간의 상호 작용)
- 외부 시스템 (DB, 외부 등등)과의 상호 작용을 테스트하고자 할 때
-
인메모리 데이터베이스 (H2, HSQLDB 등)를 사용한 테스트
-
주로 사용되는 계층
Repository
-
상황
- 실제 DB 환경과 유사하게 데이터 접근 로직을 테스트하고자 할 때 사용한다.
- 실제 데이터베이스에 영향을 주지 않으면서 CRUD 작업을 테스트하고자 할 때 사용
-
@Transactional 어노테이션을 사용한 테스트