🗓️ 주제 : 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 와 별개로 코드 레벨에서의 비즈니스 로직에 대한 테스트가 필요한 경우라면 “단위 테스트”를 추가합니다.