티스토리 뷰
Study/FastCampus
[Java Project] Part 2. 게시판 서비스 만들기 - 데이터베이스 접근 로직3 & API 테스트 정의
코딩하는 앤지 2023. 8. 30.728x90
반응형
1. 데이터 베이스 접근 로직 3
(1) 데이터 베이스 접근 로직 구현 (이어서)
- 임시로 localhost에서 잘 작동하는지도 확인할 수 있다.
- application.yaml
- 기존의 datasource 아래 내용을 주석 처리하고, 아래 코드를 추가한다.
url: jdbc:h2:mem:testdb
username: sa
driver-class-name: org.h2.Driver
- 다시 실행했을 때, H2로 연결된 것을 확인할 수 있고, local에서 테스트할 수 있다.
- 사용하진 않을 것이기 때문에 다시 원상복구 해줘야 한다.
- Article과 ArticleComment에는 동일하게 create와 last 날짜, 사용자 정보가 들어있는데 이를 묶어줄 수 있다.
- domain > 우클릭 > java class 생성 > AuditingFields
- @MappedSuperclass를 달아주고, 관련 코드들을 옮겨 준다.
- @EntityListeners(AuditingEntityListener.class)
- 날짜에는 @DateTimeFormat(iso = DateTimeFormeat.ISO.DATE_TIME)을 달아 줄 수 있다.
- create는 update가 불가능 하도록 Columns 옵션에 updatable = false를 추가한다.
- 이제 Article과 ArticleComment에서 AuditingFields를 extends 상속받아준다.
2. API 테스트 정의
(1) 게시판 API 테스트 정의
- Spring data rest 참고할 것이다.
- 먼저 Spring initializr를 사용하여 rest repositories, HAL explorer의 의존성을 가져와 build.gradle 붙여 넣고 저장한다.
- application.yaml
- data.rest:
- base-path: /api
- detection-strategy: annotated
- data.rest:
- 두 개의 repository에 @RepositoryRestResource를 붙여준다.
- HAL explorer를 통해 웹에서 repository api를 바로 확인 가능하다.
- controller > DataRestTest 를 생성한다.
- @WebMvcTest 어노테이션을 달아준다.(몇가지를 건너뜀) -> 에러 -> @SpringBootTest , @AutoConfigureMockMvc, @Transactional(롤백)
- 상태, content 를 확인해볼 수 있다.
// api 게시글 리스트 조회
// when & then
mvc.perform(get("/api/articles"))
.andExpect(status().isOk())
.andExpect(contnt().contentType(MEdiaType.valueOf("application/hal+json")));
- get()의 url을 변경하면서 다른 테스트들도 해볼 수 있다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
#패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완
728x90
반응형
'Study > FastCampus' 카테고리의 다른 글
[Java Project] Part 2. 게시판 서비스 만들기 - 게시판 페이지 생성 (0) | 2023.09.01 |
---|---|
[Java Project] Part 2. 게시판 서비스 만들기 - API & 뷰 엔드포인트 (0) | 2023.08.31 |
[Java Project] Part 2. 게시판 서비스 만들기 - 데이터베이스 접근 로직2 (0) | 2023.08.29 |
[Java Project] Part 2. 게시판 서비스 만들기 - 데이터베이스 접근 로직1 (0) | 2023.08.28 |
[Java Project] Part 2. 게시판 서비스 만들기 - 도메인 설계 (0) | 2023.08.27 |
댓글