스프링 부트 테스트
자바 웹개발(양파껍질) 스터디를 하면서 리팩토링과 테스트코드에 중요함을 점점 느끼고 있다.
스프링 부트에서 간단하게 프로젝트 테스트를 진행해 볼 수 있는데 한번 알아도록 하자.
1. Controller 테스트를 해보자
- 프로젝트 폴더를 보면 'src/test/java'에서 파일을 생성해 진행하자.('src/main/java가 아님!)
- 최근 스프링 부트 테스트를 세분화해 @DataJpaTest, @JsonTest등 다양한것이 나왔다.
- 테스트 클래스에 @WebMvcTest어노테이션을 추가해 특정 컨트롤러를 지정해주자.
- @WebMvc = @Controller + @Component + @ContollerAdvice +... 등을 인식.
- 컨트롤러를 테스트 하려면 MockMvc 타입 객체를 사용해야 하는데, @WebMvc붙여 주면 별도 생성없이 주입 된다.
- 정상적으로 실행되면 초록색 불이 뜰 것이고 아니면 빨간색 불이 뜰 것이다.
- 그냥 스프링에선 테스트 환경 준비가 번거로운데, 스프링부트는 설정이 모두 자동이라 아주편하다
여기까지 테스트 방법을 알아 보았다.
그럼 끝~!!
자바 웹개발(양파껍질) 스터디를 하면서 리팩토링과 테스트코드에 중요함을 점점 느끼고 있다.
스프링 부트에서 간단하게 프로젝트 테스트를 진행해 볼 수 있는데 한번 알아도록 하자.
1. Controller 테스트를 해보자
- 프로젝트 폴더를 보면 'src/test/java'에서 파일을 생성해 진행하자.('src/main/java가 아님!)
- 최근 스프링 부트 테스트를 세분화해 @DataJpaTest, @JsonTest등 다양한것이 나왔다.
- 테스트 클래스에 @WebMvcTest어노테이션을 추가해 특정 컨트롤러를 지정해주자.
- @WebMvc = @Controller + @Component + @ContollerAdvice +... 등을 인식.
- 컨트롤러를 테스트 하려면 MockMvc 타입 객체를 사용해야 하는데, @WebMvc붙여 주면 별도 생성없이 주입 된다.
package com.example.sutdy; import com.example.sutdy.controller.VoController; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @RunWith(SpringRunner.class) @WebMvcTest(VoController.class) public class SampleControllerTest { @Autowired MockMvc mock; @Test public void test() throws Exception { mock.perform(get("/hello")).andExpect(status().isOk()); } }- 테스트할 메서드에 @Test를 붙이면 되고 이를 실행하면 테스트가 실행된다.
- 정상적으로 실행되면 초록색 불이 뜰 것이고 아니면 빨간색 불이 뜰 것이다.
- 그냥 스프링에선 테스트 환경 준비가 번거로운데, 스프링부트는 설정이 모두 자동이라 아주편하다
여기까지 테스트 방법을 알아 보았다.
그럼 끝~!!
댓글
댓글 쓰기