欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java Junit 单元测试controller层接口的方法

程序员文章站 2022-03-02 17:35:25
...

首先要注入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());
    }