블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형
사전 준비
테스트를 위해, Entitiy와 Repository를 생성한다.
Entity 생성
Role.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;
}
Repository 생성
RoleRepository.java
@Repository
public interface RoleRepository extends JpaRepository<Role, Long> {}
테스트 코드 작성
junit5
에서는 @RunWith 대신에@ExtendWith(SpringExtend.class)
을 사용한다.@DataJpaTest
어노이테이션을 사용하면, JPA 관련된 Component만 로드 된다.- 덤으로, 테스트 종료 후 롤백도 같이 수행하여, 테스트할때 들어간 값에 대해 걱정할 필요없다.
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());
}
}
관련 글
2021/01/13 - [Spring/Spring Boot] - SpringBoot, Junit5에서 Service 테스트
반응형
'Backend > Spring Boot' 카테고리의 다른 글
SpringBoot, Junit5에서 REST API(Controller) 테스트 (0) | 2021.01.15 |
---|---|
SpringBoot, Junit5에서 Service 테스트 (1) | 2021.01.13 |
Spring Boot, JPA에서 boolean 처리 (@Converter, @Convert 사용) (1) | 2021.01.05 |
Spring Boot 프로젝트에 h2 database 설정 (0) | 2021.01.05 |
Spring Security의 기본 계정 아이디와 비밀번호 (0) | 2020.12.15 |