@JdbcTest
-
@JdbcTest2023.07.05
@JdbcTest
@JdbcTest
위 사진은 @JdbcTest annotation 의 설명이다. @JdbcTest
는 JdbcTemplate 와 같은 JDBC 관련 Bean만 로드하는데 사용하며, 특히 JDBC 관련 코드를 테스트 할때 유용하다.
따라서 나는 @SpringBootTest 를 통해 테스트시 모든 bean 을 Load 하는게 아닌 JDBC 관련 bean 들만 로드하여 테스트를 진행했다.
위 사진에서 보면 알수있듯이, 기본값으로 embedded in-memory database 를 사용한다고 나와있다. 하지만 나는 Mysql 을 통해 테스트를 해야했기 때문에 위 설정을 바꿔야 했다.
@JdbcTest 사용시 DB 변경 방법
위 사진은 @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을 통해 설정을 해주었다.
'Spring' 카테고리의 다른 글
checkedException, uncheckedException (1) | 2023.11.22 |
---|---|
Transactional을 통한 rollback시 AUTO_INCREMENT 초기화 문제 (0) | 2023.07.06 |
@ActiveProfiles (0) | 2023.07.05 |
[Spring] @RequestBody, @ModelAttribute (0) | 2023.04.24 |
[SpringMVC] DTO 사용이유 (0) | 2023.04.09 |