memostack
article thumbnail
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형

1. 사전 준비

테스트를 위해, Entitiy와 Repository를 생성한다.

 

1.1. Entity 생성

Role.java

<java />
@Entity @Table(name = "role") @Getter @Builder @NoArgsConstructor @AllArgsConstructor(access = AccessLevel.PROTECTED) @ToString public class Role { // PK @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; // 권한 이름 @Column(nullable = false, length = 50) private String roleName; }

 

1.2. Repository 생성

RoleRepository.java

<java />
@Repository public interface RoleRepository extends JpaRepository<Role, Long> {}

 

2. 테스트 코드 작성

  • junit5에서는 @RunWith 대신에 @ExtendWith(SpringExtend.class)을 사용한다.
  • @DataJpaTest 어노이테이션을 사용하면, JPA 관련된 Component만 로드 된다.
    • 덤으로, 테스트 종료 후 롤백도 같이 수행하여, 테스트할때 들어간 값에 대해 걱정할 필요없다.
<java />
import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; // ... 중략 ... @ExtendWith(SpringExtension.class) @DataJpaTest class RoleRepositoryTest { @Autowired private RoleRepository roleRepository; @Test void save() { // given String roleName = "ADMIN"; final Role role = Role.builder().roleName(roleName).build(); // when final Role savedRole = roleRepository.save(role); // then assertEquals(roleName, savedRole.getRoleName()); } }

 

테스트 성공

 


 

2.1. 관련 글

2021/01/13 - [Spring/Spring Boot] - SpringBoot, Junit5에서 Service 테스트

 

SpringBoot, Junit5에서 JPA Service 테스트

서비스 작성 MemberService.java 생성자 주입을 통해, MemberRepository 와 BCryptPasswordEncoder 를 주입한다. BCryptPasswordEncoder 는 시큐리티에 Bean 을 생성했다. (아래 펼쳐서 확인) 더보기 @Configurati..

memostack.tistory.com

 

반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!