티스토리 뷰

Server

Spring Boot Test 클래스 생성법

니용 2023. 5. 30. 08:31
반응형

오늘은 스프링 프레임워크 또는 부트를 개발하면서 제일 많이 생성하게 되는 클래스 중 하나인 Test 클래스를 생성하는 방법과 사용법에 대해 간단히 설명하고자 합니다. 

 

1. 기본형 

기본적으로 생성하는 클래스의 원형은 아래처럼 됩니다. 

@SpringBootTest
public class SpringAppTestClass {
    @Test
    void nameTest() {
    
    }
}

 

그치만 테스트를 진행하면서 부팅 속도가 상당히 느리다면, 이는 기본적으로 Spring Boot 를 실행하면서 연결되는 모든 Bean들을 가져오는 시간이므로 이 시간을 사용하면서 테스트를 진행하는 것은 굉장히 비효율적입니다. 

 

2. 변형형

그러면 기본형이 아닌 테스트에 필요한 Bean만 불러오는 방법은 없을까요? 당연히 있습니다. 

a. @WebMvcTest

위 어노테이션은 Web MVC에 관련된 Bean만 불러오게 됩니다. 즉, Model View Controller에 해당하는 어노테이션만 불러와 테스트를 진행하게 됩니다. 

b. @WebFluxTest

여기서는 위에서 Web MVC를 불러오는 것과 마찬가지로 WebFlux와 관련된 어노테이션을 가져오고, WebTestClient를 사용할 수 있습니다. 

c. @DataJpaTest

이 테스트는 주로 JPA Repository를 테스트하기 위한, 즉 쿼리를 테스트하기 위한 테스트 어노테이션입니다.

d. @WithMockUser

위 어노테이션은 Spring Security를 사용할 때 유용합니다. 시큐리티에서는 별도의 인증이 필요하지만 여기서는 인증용 사용자를 생성해주므로 불필요한 인증과정이 생략 가능합니다. 

반응형
댓글
공지사항