김솔샤르
김솔샤르의 인사이트
김솔샤르
전체 방문자
122,182
오늘
34
어제
149
  • 분류 전체보기 (51)
    • IT (47)
      • 개발로그 (9)
      • 개발지식 (24)
      • 개발일기 (8)
      • 기타 (3)
      • Note (2)
    • 칼럼 (3)
    • 생활정보 (2)

인기 글

  • Gradle Repository를 변경해보자
    2020.12.19
    Gradle Repository를 변경해보자
  • Springboot yaml 파일에 List 세팅하기
    2021.08.05
  • Spring Data JPA의 saveAll() 사용시 주⋯
    2021.01.31
    Spring Data JPA의 saveAll() 사용시 주⋯
  • 자바 웹 애플리케이션 Out of memory 오류 해결기
    2020.06.21
    자바 웹 애플리케이션 Out of memory 오류 해결기
  • [삽질로그] JPA 연관관계 외래키 매핑시 주의점
    2021.01.17
    [삽질로그] JPA 연관관계 외래키 매핑시 주의점

최근 댓글

  • 읽어주셔서 감사합니다.
    김솔샤르
  • 좋은 내용 공유 정말 감사드립니다 :)
    도뎡
  • 읽어주셔서 감사합니다!
    김솔샤르
  • 감사합니다.
    행복한 시지프
  • 부족한 글 읽어주셔서 감사합니다 :)
    김솔샤르

최근 글

  • jitPack으로 라이브러리 배포하기
    2022.10.24
    jitPack으로 라이브러리 배포하기
  • 정규 표현식 빠르게 만들기
    2022.10.17
    정규 표현식 빠르게 만들기
  • 한국은 왜 자바 왕국이 됐을까
    2022.08.13
    한국은 왜 자바 왕국이 됐을까
  • Pandas 정리(+NumPy)
    2022.08.06
  • [Classification] Feature Enginee⋯
    2022.07.31

태그

  • epl
  • 자바스크립트
  • 맨유
  • 러시아월드컵
  • jpa
  • 포그바
  • 축구
  • 루니
  • 월드컵
  • JavaScript

티스토리

블로그 메뉴

  • 홈
  • 태그
  • 방명록
hELLO · Designed By 정상우.
김솔샤르

김솔샤르의 인사이트

DataJpaTest를 활용한 테스트
IT/개발지식

DataJpaTest를 활용한 테스트

2019. 3. 2. 19:18

지난 포스팅에서는 Mockito를 활용하여 Service 객체가 적절하게 내부 객체를 호출하는지를 알아보는 테스트를 진행했었다. 그 과정에서 Mock 객체를 활용한 이유는 테스트의 주 관심 대상이 아닌 객체는 올바르게 동작한다는 가정을 하기 위해서였는데, 이제 해당 Mock 객체가 올바르게 동작했는지 테스트해보자.

 

마찬가지로 회의실 예약 예제를 활용해보자.

 

 

이번 테스트의 중점은 Spring Data JPA의 동작이다. 즉, 데이터가 실제로 올바르게 들어가고 나오는지를 보면 된다. 코드를 보자.

 

 

 

 

간단하다. testRetrieveRooms 메서드를 보면, 먼저 "A"라는 회의실을 생성해 roomRepository에 저장한다. 저장된 모든 회의실 중 첫번째 회의실을 꺼내온 다음, 회의실의 이름이 위에서 저장했던 "A"와 일치하는지를 확인한다.

 

 

테스트 함수를 실행해보면 깔끔하게 pass 된다. Mockito를 활용했던 지난 테스트와의 차이는, 가짜 객체인 Mock이 아닌 실제 Repository 객체를 활용했다는 것이다. DataJpaTest 애노테이션을 선언해주면 내부적으로 in-memory database를 생성하여 선언된 Entity 클래스들을 스캔한다. 따라서 위와 같이 실제 DB가 동작하는 모습을 확인할 수 있다.

 

또, 테스트를 마치고 직접 데이터를 롤백하거나 Transactional 애노테이션을 달아줄 필요는 없다. DataJpaTest가 내부적으로 Transactional 애노테이션을 포함하고 있기 때문에 롤백은 자동으로 수행된다.

 

 

참고

 

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html

 

 

반응형
저작자표시 비영리 변경금지

'IT > 개발지식' 카테고리의 다른 글

Git commit 이력을 깔끔하게 관리하는 2가지 방법  (0) 2021.01.31
JPA의 핵심 - 영속성 컨텍스트 훑어보기  (0) 2020.09.26
Mockito를 활용한 단위테스트  (0) 2018.11.14
[자바스크립트] 최대값과 최소값 찾기  (0) 2018.08.19
[자바스크립트] sort() 함수 활용하여 간단히 정렬하기  (0) 2018.08.18
DataJpaTest, jpa, JPA 테스트
김솔샤르
김솔샤르
기술 그리고 삶
댓글쓰기
JPA의 핵심 - 영속성 컨텍스트 훑어보기
다음 글
JPA의 핵심 - 영속성 컨텍스트 훑어보기
Mockito를 활용한 단위테스트
이전 글
Mockito를 활용한 단위테스트

티스토리툴바