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 사용을 권장합니다.
'dev > JUnit' 카테고리의 다른 글
JUnit5 MethodSource (0) | 2024.04.25 |
---|---|
JUnit5 Controller ParameterizedTest (0) | 2023.10.16 |
JUnit5 DB test (0) | 2023.10.06 |