레포지토리 테스트 만들기

연어는결국강으로·2024년 5월 17일
0

Junit

목록 보기
10/10

JUnit을 사용하여 레포지토리 테스트 코드를 작성하려면, 몇 가지 사전 준비 작업이 필요합니다. 예를 들어, 데이터베이스 접근이 필요한 경우 인메모리 데이터베이스인 H2를 사용하거나, 테스트 환경을 구성하여 Spring Data JPA 레포지토리를 테스트할 수 있습니다. 기본적인 예제로 Spring Data JPA를 사용하는 경우의 테스트 코드를 작성해드릴게요.

아래의 코드는 간단한 엔터티와 해당 레포지토리를 테스트하는 방법을 보여줍니다.

  1. 먼저, 엔터티와 레포지토리를 정의합니다.

ExampleEntity.java

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class ExampleEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

ExampleRepository.java

import org.springframework.data.jpa.repository.JpaRepository;

public interface ExampleRepository extends JpaRepository<ExampleEntity, Long> {
    // 사용자 정의 쿼리 메서드를 여기에 추가할 수 있습니다.
}
  1. 이제, JUnit을 사용하여 해당 레포지토리를 테스트합니다.

ExampleRepositoryTest.java

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import java.util.Optional;
import static org.assertj.core.api.Assertions.assertThat;

@DataJpaTest
public class ExampleRepositoryTest {

    @Autowired
    private ExampleRepository exampleRepository;

    @Test
    public void testSaveAndFindById() {
        // 엔터티 생성 및 저장
        ExampleEntity entity = new ExampleEntity();
        entity.setName("Test Entity");
        ExampleEntity savedEntity = exampleRepository.save(entity);

        // 저장된 엔터티를 ID로 검색
        Optional<ExampleEntity> foundEntity = exampleRepository.findById(savedEntity.getId());

        // 엔터티가 제대로 저장되었는지 검증
        assertThat(foundEntity).isPresent();
        assertThat(foundEntity.get().getName()).isEqualTo("Test Entity");
    }
}

위 코드에서 @DataJpaTest 어노테이션을 사용하면 Spring Data JPA 관련 설정만 로드되어 JPA 기능을 테스트할 수 있습니다. assertThatassertj 라이브러리의 메서드로, 테스트 결과를 쉽게 확인할 수 있게 도와줍니다.

이 코드로 기본적인 Spring Data JPA 레포지토리 테스트 방법을 알 수 있습니다. 필요한 경우 테스트 환경에서 여러 조건을 추가하거나 복잡한 쿼리 메서드를 테스트할 수 있습니다.

0개의 댓글