본문 바로가기

dev/JUnit

JUnit5 Controller Test

junit에서 컨트롤러 단위 테스트 하는 방법입니다.

 

junit 테스트 코드

 

테스트 코드를 설명드리면 아래와 같습니다.

 

25라인: junit5에 스프링 테스트 환경을 확장합니다.

26~29라인: 웹 MVC 컨트롤러 단위 테스트 합니다.

                   테스트 대상은 PayController이고, 스프링 시큐리티 설정은 제외합니다.

30라인: junit5에 테스트 메소드 실행순서를 지원하고 있습니다.

31라인: junit 테스트 클래스 이름을 지정하고 있습니다.

36~37라인: mockMvc 객체를 주입합니다.

39~40라인: PayController에서 사용하는 payService 빈을 Mock 객체로 대신합니다.

42라인: junit에서 테스트하는 메소드를 정의합니다.

43라인: 테스트 메소드 실행 순서를 지정합니다.

47~48라인: 컨트롤러에 전달할 요청 정보 url과 데이터(content)를 정의합니다.

51~61라인: mockMvc 객체의 perform 메소드를 사용하여 Http Post 요청을 테스트합니다.

                   MockMvcRequestBuilders 클래스는 mockMvc 객체가 Http 요청을 할 수 있도록 지원하는 클래스입니다.

                   MockMvcRequestBuilders의 post 메소드를 통해 앞에서 정의한 url에 Http post 요청을 합니다.

                   MockMvcRequestBuilders의 contentType 메소드를 통해 요청 Content-Type을 json으로 설정합니다.

                   MockMvcRequestBuilders의 content 메소드를 통해 content를 요청 본문에 추가합니다.

                  andExpect 메소드를 사용하여 테스트 결과를 확인합니다.

 

junit 테스트 결과

 

해당 코드를 테스트하면 정상적으로 실행된 것을 확인할 수 있습니다.

 

junit을 사용하면 프로젝트를 실행시키지 않고도 테스트할 수 있기 때문에

 

비용이 절감되는 장점이 있으므로 junit 사용을 권장합니다.

'dev > JUnit' 카테고리의 다른 글

JUnit5 MethodSource  (0) 2024.04.25
JUnit5 Controller ParameterizedTest  (0) 2023.10.16
JUnit5 DB test  (0) 2023.10.06