오늘은 Part2.게시판서비스 강의의 `API 테스트 정의` 부분을 학습하였다.
Spring Data Rest
Spring Data REST를 사용하면 별도의 컨트롤러 없이 Entity와 Repository 인터페이스를 보고 분석해서 자동으로 RESTful API를 제공해준다.
= Entity와 Repository만 만들어주면 API가 자동 생성된다.
사용법
의존성 추가 - HAL Explorer은 만든 API를 간단하게 테스트하기 위해 추가한다.
implementation 'org.springframework.boot:spring-boot-starter-data-rest'
implementation 'org.springframework.data:spring-data-rest-hal-explorer'
yaml파일 옵션 추가
data.rest:
base-path: /api
detection-strategy: annotated
Repository에 @RepositoryRestResource 어노테이션을 추가
HAL Explorer 사용하기
localhost:8080/api로 접속하면 HAL Explorer 화면이 뜬다.


DataRestTest 작성하기
@WebMvcTest
Application Context 완전하게 Start 시키지 않고 web layer를 테스트 하고 싶을 때 @WebMvcTest를 사용한다.
Service, Repository dependency가 필요한 경우에는 @MockBean으로 주입받아 테스트를 진행 한다.
MockMvc
웹 애플리케이션을 서버에 배포하지 않고 테스트용 MVC 환경을 만들어 요청 및 전송, 응답기능을 제공해주는 유틸리티 클래스이다.