[스프링] 스프링 부트 테스트에서의 데이터베이스 연동 테스트

스프링 부트 애플리케이션을 개발할 때 데이터베이스와의 연동 테스트는 매우 중요합니다. 이를 위해 스프링 프레임워크는 다양한 방법을 제공합니다. 주로 사용되는 방법은 인메모리 데이터베이스를 이용하여 테스트하는 것입니다.

인메모리 데이터베이스 설정

가장 일반적으로 사용되는 인메모리 데이터베이스로는 H2, HSQLDB, Derby가 있습니다.

[Code]

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

위와 같이 application.properties 파일에 인메모리 데이터베이스의 설정을 추가하고, 의존성을 추가하는 방법으로 인메모리 데이터베이스를 설정할 수 있습니다.

테스트 작성 및 실행

인메모리 데이터베이스와 통합 테스트를 진행하려면 @SpringBootTest 애노테이션을 사용하여 스프링 부트 애플리케이션을 테스트용 컨텍스트에서 실행합니다.

[Code]

@RunWith(SpringRunner.class)
@SpringBootTest
public class UserRepositoryIntegrationTest {
    
    @Autowired
    private UserRepository userRepository;
    
    @Test
    public void testFindAll() {
        // 테스트용 데이터 추가
        userRepository.save(new User("John", "Doe"));
        userRepository.save(new User("Emma", "Smith"));
        
        // 전체 데이터 조회
        List<User> users = userRepository.findAll();
        
        // 검증
        assertNotNull(users);
        assertEquals(2, users.size());
    }
}

위와 같이 @SpringBootTest 애노테이션을 사용하여 스프링 부트 애플리케이션을 테스트용 컨텍스트에서 실행된 후, UserRepository를 통해 데이터를 조회하는 테스트 코드를 작성할 수 있습니다.

마치며

스프링 부트 애플리케이션에서의 데이터베이스 연동 테스트는 매우 중요합니다. 인메모리 데이터베이스를 이용하여 효율적으로 테스트를 진행할 수 있으며, 테스트 코드 작성 시 주의할 점들을 숙지하는 것이 중요합니다.

더 많은 자세한 정보는 스프링 부트 공식 문서를 참고하시기 바랍니다.

스프링 부트 공식 문서

참고 문헌: