🗂️ Personal Project/📑Spring 심화 주차 개인 과제
Spring 심화 주차 개인 과제
litlight
2024. 6. 17. 11:10
🗓️ 주제 : Controller, Service, Entity, DTO 레이어에 맞는 단위 테스트 작성하기🗓️
⚠️ Warning : 꼭 지켜야 할 것! ⚠️
given-when-then 전략 지키기!
테스트 코드 작성시 given-when-then 패턴으로 주석과 함께 3등분해서 나누어서 작성해주세요.
given(준비) - when(실행) - then(검증) 순으로 작성해야 가독성이 좋고 관리가 편리해집니다.
✔️ 첫 번째 요구사항
- AOP 추가하기
- 모든 API(Controller)가 호출될 때, Request 정보(Request URL, HTTP Method)를 @Slf4J Logback 라이브러리를 활용하여 Log로 출력해주세요.
- 컨트롤러 마다 로그를 출력하는 코드를 추가하는것이 아닌, AOP로 구현해야만 합니다.
✔️ 두 번째 요구사항
- DTO, Entity Test 추가하기
- @Test 를 사용해서 DTO 와 Entity Test 를 추가합니다.
- User, Post, Comment, DTO 에 존재하는 메서드들에 대해서 “단위 테스트” 를 추가합니다.
- 특정 상황에 예외가 정상적으로 발생하고 있는지도 테스트 합니다.
✔️ 세 번째 요구사항
- Controller Test 추가하기
- @WebMvcTest 를 사용하여 Controller Test 를 추가합니다.
- Post, Comment Controller 에 대해서 테스트를 추가합니다.
- 특정 상황에 예외가 정상적으로 발생하고 있는지도 테스트 합니다.
✔️ 네 번째 요구사항
- Service Test 추가하기
- @ExtendWith 를 사용하여 Service Test 를 추가합니다.
- User, UserDetails, Post, Comment Service 에 대해서 “통합 테스트” 를 추가합니다.
- 단순 DB CRUD 와 별개로 코드 레벨에서의 비즈니스 로직에 대한 테스트가 필요한 경우라면 “단위 테스트”를 추가합니다.
- ex) 비밀번호가 암호화 되었는가
- 특정 상황에 예외가 정상적으로 발생하고 있는지도 테스트 합니다.