반응형
우선 MockMVC에 대해서 알아보면.
어플리케이션을 서버에 배포없이도 스프링 MVC의 테스트를 진행할 수 있게 도와주는 클래스이다.
스프링 공홈에서는 아래와 같이 소개한다.
https://docs.spring.io/spring-framework/reference/testing/spring-mvc-test-framework.html
바로 간단하게 메서드별로 예제를 아래 적어보면,
Get
@Autowired private MockMvc mockMvc; @Autowired private TestService testService; @Test @DisplayName("Get Test") void findByNameTest() throws Exception { mockMvc .perform( get("/test/findbyname") .param("name", "thenice") ) .andExpect(status().isOk()) .andDo(print()); Assertions.assertThat(testService.findByName("thenice").size()>=1); } |
Post
@Autowired private MockMvc mockMvc; @Autowired private TestService testService; @Test @DisplayName("Post Test") void insertTest() throws Exception { Map<String, String> input = new HashMap<>(); // body에 json 형식으로 회원의 데이터를 넣기 위해서 Map을 이용한다. input.put("name", "thenice"); input.put("email", "thenice@tistory.com"); input.put("password", "12341234"); mockMvc .perform( post("/test/findbyname") .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(input))) ) .andExpect(status().isOk()) .andDo(print()); } |
Put
@Autowired private MockMvc mockMvc; @Autowired private TestService testService; @Test @DisplayName("Put Test") void modifyByNameTest() throws Exception { mockMvc .perform( put("/cust/modifybyname") .param("name", "thenice") ) .andExpect(status().isOk()) .andDo(print()); } |
Delete
@Autowired private MockMvc mockMvc; @Autowired private TestService testService; @Test @DisplayName("Delete Test") void deleteByNameTest() throws Exception { mockMvc .perform( delete("/cust/modifybyname") .param("name", "thenice") ) .andExpect(status().isOk()) .andDo(print()); } |
참고로 import 관련해서는 아래와 같다.
- import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
- import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
- import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
- import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
- import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
반응형
'IT > Java' 카테고리의 다른 글
ThreadPool Default (21) | 2024.08.15 |
---|---|
자바에서 Thread 확인 (6) | 2024.08.14 |
JPA 에서 containing(Contains, IsContaining) (20) | 2024.08.12 |
RequestParam 에서 @Valid 사용 (14) | 2024.08.11 |
DatasSource Exclude 설정 관련(DataSourceAutoConfiguration) (13) | 2024.08.10 |
댓글