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());
    }

ref:SpringBoot基礎之MockMvc單元測試 - 雲+社區 - 騰訊雲 (tencent.com)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM