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;