[TIL 53일 차] Sprint Mission7 - Repository와 Controller 계층에서 주요 메서드 슬라이스 테스트
오늘의 성취
- 슬라이스 테스트
- Repository 계층에서 주요 메서드에 대한 슬라이스 테스트
- 주요 레포지토리(User, Channel, Message)의 주요 쿼리 메서드에 대해 테스트 케이스 작성
UserRepository작업 중- 커스텀 쿼리 메서드
- 페이징 및 정렬 메서드
- 주요 레포지토리(User, Channel, Message)의 주요 쿼리 메서드에 대해 테스트 케이스 작성
- Repository 계층에서 주요 메서드에 대한 슬라이스 테스트
- Controller 계층에서 슬라이스 테스트를 작성
@WebMvcTest를 활용해 테스트를 구현- WebMvcTest에서 자동으로 등록되지 않는 유형의 Bean이 필요하다면
@Import를 활용해 추가 - 주요 컨트롤러(User, Channel, Message)에 대해 테스트 케이스 작성
MessageController작업 중
- MockMvc를 활용해 Controller를 테스트
- Service 계층을 mock하여 Controller 로직만 테스트
- JSON 응답을 검증하는 테스트를 포함
프로젝트 요구 사항
2. 기본 요구사항
//...
2-6. 단위 테스트
- 서비스 레이어의 주요 메서드에 대한 단위 테스트를 작성하세요.
- 다음 서비스의 핵심 메서드에 대해 각각 최소 2개 이상(성공, 실패)의 테스트 케이스를 작성하세요.
- UserService: create, update, delete 메서드
- ChannelService: create(PUBLIC, PRIVATE), update, delete, findByUserId 메서드
- MessageService: create, update, delete, findByChannelId 메서드
Mockito를 활용해 Repository 의존성을 모의(mock)하세요.BDDMockito를 활용해 테스트 가독성을 높이세요.
- 다음 서비스의 핵심 메서드에 대해 각각 최소 2개 이상(성공, 실패)의 테스트 케이스를 작성하세요.
2-7. 슬라이스 테스트
- 레포지토리 레이어의 슬라이스 테스트를 작성하세요.
@DataJpaTest를 활용해 테스트를 구현하세요.- 테스트 환경을 구성하는 프로파일을 구성하세요.
application-test.yaml을 생성하세요.- 데이터소스는 H2 인메모리 데이터 베이스를 사용하고, PostgreSQL 호환 모드로 설정하세요.
- H2 데이터베이스를 위해 필요한 의존성을 추가하세요.
- 테스트 시작 시 스키마를 새로 생성하도록 설정하세요.
- 디버깅에 용이하도록 로그 레벨을 적절히 설정하세요.
- 테스트 실행 간
test프로파일을 활성화 하세요. - JPA Audit 기능을 활성화 하기 위해 테스트 클래스에
@EnableJpaAuditing을 추가하세요. - 주요 레포지토리(User, Channel, Message)의 주요 쿼리 메서드에 대해 각각 최소 2개 이상(성공, 실패)의 테스트 케이스를 작성하세요.
- 커스텀 쿼리 메서드
- 페이징 및 정렬 메서드
- [진행 중] 컨트롤러 레이어의 슬라이스 테스트를 작성하세요.
@WebMvcTest를 활용해 테스트를 구현하세요.WebMvcTest에서 자동으로 등록되지 않는 유형의 Bean이 필요하다면@Import를 활용해 추가하세요.- 예시
@Import({ErrorCodeStatusMapper.class})
- 예시
- 주요 컨트롤러(User, Channel, Message)에 대해 최소 2개 이상(성공, 실패)의 테스트 케이스를 작성하세요.
- MockMvc를 활용해 컨트롤러를 테스트하세요.
- 서비스 레이어를 모의(mock)하여 컨트롤러 로직만 테스트하세요.
- JSON 응답을 검증하는 테스트를 포함하세요.
GitHub Repository 주소
https://github.com/JungH200000/10-sprint-mission/tree/sprint7
Leave a comment