ava Junit 单元测试controller层接口的方法
首先要注入MockMvc(引入的包为:import org.springframework.test.web.servlet.MockMvc;)
@Autowired private MockMvc mvc;
1.get方法,参数类型为@RequestParam
@Test public void searchFiles() throws Exception { //文件搜索 RequestBuilder request; request = get("/api/v1/folders").param("page", "1") .param("pageSize", "50") .param("parentId", "-1") .param("order", "createTime") .param("orderType", "desc"); mvc.perform(request) .andExpect(status().isOk()) .andDo(MockMvcResultHandlers.print()); }
2.get方法,参数类型为@PathVariable
@Test public void getFoldersByParentId() throws Exception { //文件夹搜索 RequestBuilder request; request = get("/api/v1/folders/{parentId}/folders", -1); mvc.perform(request) .andExpect(status().isOk()) .andDo(MockMvcResultHandlers.print()); }
3.post方法,参数类型为@RequestBody
@Test public void createNewOrEditFile() throws Exception { //创建文件夹 RequestBuilder request; request = post("/api/v1/folders") .contentType(MediaType.APPLICATION_JSON) .accept(MediaType.APPLICATION_JSON) .content("{\"name\": \"测试\", \"dir\": 1, \"parentId\": -1}"); mvc.perform(request) .andExpect(status().isOk()) .andDo(MockMvcResultHandlers.print()); }
4.需要获得接口得返回值用以进行其他接口得关联:
@Test public void createNewOrEditFile() throws Exception { //创建文件夹 RequestBuilder request; request = post("/api/v1/folders") .contentType(MediaType.APPLICATION_JSON) .accept(MediaType.APPLICATION_JSON) .content("{\"name\": \"测试\", \"dir\": 1, \"parentId\": -1}"); String re = mvc.perform(request) .andExpect(status().isOk()) .andDo(MockMvcResultHandlers.print()) .andReturn().getResponse().getContentAsString(); }
5.delete方法
@Test public void deleteFiles() throws Exception { RequestBuilder request; request = delete("/api/v1/folders") .contentType(MediaType.APPLICATION_JSON) .accept(MediaType.APPLICATION_JSON) .content("{\"ids\": [430]}"); mvc.perform(request) .andExpect(status().isOk()) .andDo(MockMvcResultHandlers.print()); }