울음참고 개발공부
article thumbnail
728x90

2023.04.25 - [TIL] - Spring | 단위 테스트 vs 통합 테스트

 

Spring | 단위 테스트 vs 통합 테스트

단위 테스트 [ 정의 ] 단위 테스트는 앱의 작은 단위(일반적으로 메서드)를 사용하여 코드의 나머지 부분에서 격리하고 예상대로 작동하는지 확인한다. 스프링 컨테이너 없이 하는 순수한 테스

megak.tistory.com

 

 

이번 포스트는, 통합 테스트를 진행하던 중 발생한 오류를 해결하는 과정이다. 

 

 

 

 

[ 문제 상황 ]

 

통합테스트 구현을 위해 다음과 같이 @Transactional 어노테이션을 사용하고 싶은데, import 할 수 없는 상황이다. 

왜 일까?

 

 

[ 이유 ]

 

먼저, 해당어노테이션에 대해 알아보자

 

@Transactional

 

트렌젝션에 해당 어노테이션이 있으면, 테스트 시작전에 트랜잭션을 시작하고 테스트 완료 후 항상 롤백하는 기능을한다.

@Test 어노테이션 마다 실행되며 DB에 데이터가 남게 하지않게 하기 위한 방법이다. 

 

 

기본적으로 Java 와 DB 를 연결하기 위해서는 jdbc 가 필요한데, 해당 라이브러리를 임포트하는 과정을 빠뜨린 것이다!

그렇다면 어서 임포트해주자

 

 

[ 해결 ]

 

1 ) build.gradle 에서 dependencies 안에 작성할 것

 - 라이브러리 설치

implementation 'org.springframework.boot:spring-boot-starter-jdbc'
runtimeOnly 'com.h2database:h2'

 

2) application.properties 에 작성할 것

 - 사용하는 db 에 대한 정보

spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa

 

 

db로 h2를 선택하였기 때문에 해당하는 정보를 적어주었다. 

 

사용하는 h2 정보

 

 

그럼 다음과 같이 import 할 수있게 된다.

 

 

 

 

[ 참고 ]

 

인프런 - "스프링 입문 - 코드로 배우는 스프링 부트,웹 MVC, DB 접근 기술" (무료) 를 수강하며 발생한 오류 해결과정. 

 

728x90
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!