[스프링] JPA 테스트
스프링 프레임워크에서 JPA(자바 영속성 API) 를 사용하는 애플리케이션을 개발할 때 테스트는 매우 중요합니다. 일반적으로 JPA 레포지토리의 메서드가 올바르게 작동하며, 데이터베이스와 통합이 잘 되는지 확인해야 합니다.
1. 의존성 추가
먼저, spring-boot-starter-data-jpa
의존성을 추가해야 합니다. 이 의존성은 JPA와 관련된 필수 라이브러리들을 포함하고 있습니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
2. JPA 테스트 설정
JPA 테스트를 위해 @DataJpaTest
애노테이션을 사용합니다. 이 애노테이션을 사용하면 테스트용 데이터베이스를 자동으로 설정하고, JPA 레포지토리와 관련된 빈들을 자동으로 스캔하여 테스트할 수 있습니다.
@RunWith(SpringRunner.class)
@DataJpaTest
public class MyRepositoryTests {
// 테스트 코드 작성
}
3. 테스트 작성
이제 JPA 레포지토리의 메서드가 올바르게 작동하는지 확인하는 테스트를 작성할 차례입니다. 예를 들어, MyEntity
를 저장하고 조회하는 메서드를 가지고 있는 MyRepository
라는 JPA 레포지토리가 있다고 가정해봅시다.
@RunWith(SpringRunner.class)
@DataJpaTest
public class MyRepositoryTests {
@Autowired
private MyRepository myRepository;
@Test
public void testSaveAndFind() {
MyEntity entity = new MyEntity();
entity.setName("Test Entity");
MyEntity savedEntity = myRepository.save(entity);
Optional<MyEntity> foundEntity = myRepository.findById(savedEntity.getId());
assertThat(foundEntity).isPresent();
assertThat(foundEntity.get().getName()).isEqualTo("Test Entity");
}
}
4. 테스트 실행
테스트를 실행하면 스프링 부트가 자동으로 인메모리 데이터베이스를 설정하고, 해당 데이터베이스 상에서 JPA 레포지토리 메서드에 대한 테스트를 수행합니다.
이처럼, 스프링에서 JPA를 사용하는 애플리케이션을 개발할 때는 @DataJpaTest
애노테이션과 테스트용 데이터베이스를 활용하여 JPA 테스트를 간편하게 작성할 수 있습니다.
참고 자료
추가 참고: 이 페이지를 참고하여 실제 프로젝트 환경에 맞게 설정하세요.