Java 如何使用MockMvc为DefaultMultipartTTpServletRequest控制器方法编写单元测试?

Java 如何使用MockMvc为DefaultMultipartTTpServletRequest控制器方法编写单元测试?,java,spring,unit-testing,Java,Spring,Unit Testing,代码如下: @RequestMapping(value = "/upload/{resource}",method=RequestMethod.POST) @ResponseBody public Object uploadfileUpload(@PathVariable("resource") String resource,DefaultMultipartHttpServletRequest request,HttpServletResponse resp,MultipartFile fil

代码如下:

@RequestMapping(value = "/upload/{resource}",method=RequestMethod.POST)
@ResponseBody
public Object uploadfileUpload(@PathVariable("resource") String resource,DefaultMultipartHttpServletRequest request,HttpServletResponse resp,MultipartFile file) throws IOException {
    ......
}
在守则中:

this.mockMvc.perform(mockMultipartHttpServletRequestBuilder)
只能发布MultipartAttpServletRequest,因为MockMultipartAttpServletRequestBuilder实现MultipartAttpServletRequest。MultipartTTpServletRequest是一个接口

如何创建DefaultMultipartTTpServletRequest类对象,然后在mockMvc中发布请求以完成单元测试

@Test
public void testUploadARA3() throws Exception {
    FileInputStream file = new FileInputStream(
            "C:/test_42873.xlsm");
    MockMultipartFile multipartFile = new MockMultipartFile(
            "test_42873.xlsm", file);
    MockMultipartHttpServletRequestBuilder mockMultipartHttpServletRequestBuilder = (MockMultipartHttpServletRequestBuilder) fileUpload(
            "/upload/{resource}", "ARA").accept(MediaType.ALL);
    mockMultipartHttpServletRequestBuilder.file(multipartFile);
    //mockMultipartHttpServletRequestBuilder.content("whatever");

    MockHttpServletRequest request;
    MvcResult response =   this.mockMvc.perform(mockMultipartHttpServletRequestBuilder).andDo(print())
            .andExpect(status().isOk()).andReturn();
    System.out.println(response.getResponse().getContentAsString());

}

我的测试代码没有输入uploadfileUpload Method。

开始阅读教程;和实验。而不是仅仅把你的需求放在这里,期待其他人为你做这些。欢迎您提出一些具体问题,比如这是我的代码,但它在这里和那里都不起作用……this.mockMvc=MockMvcBuilders.webAppContextSetupthis.wac.build;