@BeforeEach
public void before(){
this.mockMvc= MockMvcBuilders.standaloneSetup(new PostRestController(this.postService))
.setCustomArgumentResolvers(new PageableHandlerMethodArgumentResolver())
.build();
}
class PageableHandlerMethodArgumentResolver | 웹 요청에서 페이징 정보를 추출하므로 Pageable 인스턴스를 컨트롤러 메소드에 주입한다. |
class StandaloneMockMvcBuilder | @Controller 등록을 허용하는 MockMvcBuilder는 일반 단위 테스트와 유사한 컨트롤러의 인스턴스화 및 초기화 및 종속성을 완전히 제어할 수 있으며 한 번에 하나의 컨트롤러를 테스트할 수도 있다. 이 builder는 DispatcherServlet이 컨트롤러에 명시된 요청을 수행하고 또한 필요한 최소한의 환경을 생성한다. |
@Test
public void list() throws Exception{
String keyword="vlog";
mockMvc.perform(get("/rest/posts/search")
.contentType("application/x-www-form-urlencoded")
.param("keyword", keyword))
.andDo(print())
.andExpect(status().isOk());
}
참고 👇
https://stackoverflow.com/questions/51128457/testing-rest-controller-with-pageabledefault
https://velog.io/@jkijki12/Spring-MockMvc
반응형
'Test > Junit' 카테고리의 다른 글
[MockMvc] 테스트 시 redirect 여부 확인 (0) | 2022.09.17 |
---|---|
[Error] Internal Error occurred. org.junit.platform.commons.JUnitException: TestEngine with ID 'junit-jupiter' failed to discover tests (1) | 2022.09.12 |
Cannot resolve symbol 'WithMockUser' (0) | 2022.08.30 |
JUnit5 (0) | 2022.01.27 |