[Spring] 스프링 DB 2편 3-1. 테스트 - 데이터베이스 연동

강우엉·2023년 8월 30일

Spring

목록 보기
298/359

데이터 접근 기술에 대해서 더 알아보기 전에 데이터베이스에 연동하는 테스트에 대해서 알아보자. 데이터 접근 기술은 실제 데이터베이스에 접근해서 데이터를 잘 저장하고 조회할 수 있는지 확인하는 것이 필요하다.

지금부터 테스트를 실행할 때 실제 데이터베이스를 연동해서 진행해보자.
앞서 개발한 ItemRepositoryTest 를 통해서 테스트를 진행할 것이다.

테스트 케이스에서도 데이터베이스에 접속할 수 있게 test의 application.properties 를 다음과 같이 수정하자.

test - application.properties 수정
src/test/resources/application.properties

spring.profiles.active=test
spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.username=sa
logging.level.org.springframework.jdbc=debug

테스트 실행 - 로컬DB
ItemRepositoryTest 테스트 코드를 확인해보자.
참고로 src/test 하위에 있다.

  • ItemRepositoryTest 는 @SpringBootTest 를 사용한다. @SpringBootTest 는 @SpringBootApplication 를 찾아서 설정으로 사용한다.

  • @SpringBootApplication 설정이 과거에는 MemoryConfig.class 를 사용하다가 이제는 JdbcTemplateV3Config.class 를 사용하도록 변경되었다. 따라서 테스트도 JdbcTemplate 을 통해 실제 데이터베이스를 호출하게 된다.

테스트 실행
ItemRepositoryTest 테스트 전체를 실행하자.

  • updateitem() : 성공
  • save() : 성공
  • findItems() : 실패

테스트에서 저정한 3개의 데이터가 조회 되어야 하는데, 기대보다 더 많은 데이터가 조회되었다.

문제는 H2 데이터베이스에 이미 과거에 서버를 실행하면서 저장했던 데이터가 보관되어 있기 때문이다. 이 데이터가 현재 테스트에 영향을 준다.

profile
우엉이의 코딩 성장일기💻

0개의 댓글