티스토리 뷰

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
  • 두 개의 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을 변경하면서 다른 테스트들도 해볼 수 있다.

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/43z0P6S

 

 

#패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완

728x90
반응형
댓글