@JdbcTest

@JdbcTest

2023. 7. 5. 16:24
728x90

@JdbcTest

image-20230705153434084


위 사진은 @JdbcTest annotation 의 설명이다. @JdbcTest 는 JdbcTemplate 와 같은 JDBC 관련 Bean만 로드하는데 사용하며, 특히 JDBC 관련 코드를 테스트 할때 유용하다.

따라서 나는 @SpringBootTest 를 통해 테스트시 모든 bean 을 Load 하는게 아닌 JDBC 관련 bean 들만 로드하여 테스트를 진행했다.

위 사진에서 보면 알수있듯이, 기본값으로 embedded in-memory database 를 사용한다고 나와있다. 하지만 나는 Mysql 을 통해 테스트를 해야했기 때문에 위 설정을 바꿔야 했다.



@JdbcTest 사용시 DB 변경 방법

image-20230705153853394

위 사진은 @JdbcTest의 설명중 DB 설정 변경에 대한 내용이다.


해당 내용을 살펴보면 기본적으로 embedded in-memory database 를 사용한다 나와있고, 만약 다른 DB를 사용하고 싶다면 @AutoConfigureTestDatabase 를 통해 세팅을 바꿀수 있다 나와있다.



@AutoConfigureTestDatabase

@AutoConfugreTestDatabase annotation을 사용하면 SpringBoot의 데이터베이스 테스트 자동 구성을 정할수 있다.

@AutoConfugreTestDatabase 를 사용하는 형식은 아래와 같다.

// 이값은 기존의 데이터베이스 구성을 유지한다. 
@AutoConfigureTestDatabase(replace=AutoConfigureTestDatabase.Replace.NONE)

// (기본값) 이 값은 기존의 어떤 데이터베이스 구성이라도 인메모리 데이터베이스로 대체한다.
@AutoConfigureTestDatabase(replace=AutoConfigureTestDatabase.Replace.ANY)

나는 @JdbcTest 를 사용하되 DB는 인메모리가 아닌 MySQL을 사용해야 한다. 따라서

@AutoConfigureTestDatabase(replace=AutoConfigureTestDatabase.Replace.NONE) 해당 설정을 통해 인메모리가 아닌 내가 원하는 DB를 사용할수 있게 설정했으며, 이때 DB는 Profiles-group을 통해 설정을 해주었다.

728x90

+ Recent posts