猿问

HttpServletRequest 到 MultipartHttpServletRequest:

我正在尝试为包含以下方法的 Controller 类编写 Junit 测试。


 @RequestMapping(value = "/mappingUrl", method = RequestMethod.POST)

public String uploadFileMethod(HttpServletResponse httpResponse, HttpServletRequest httpRequest, ModelMap model) throws Exception {


  try {

    MultipartFile multipartFile = ((MultipartHttpServletRequest) httpRequest).getFile("fileName");

   }

  catch(Exception e){}

}

在测试类中,我有以下方法


 @Test

public void testUploadFileMethod() throws Exception {

mockMVC.perform(post("/mappingUrl")).andExpect(status().isOk());

}

执行测试时出现以下异常:


java.lang.ClassCastException: org.springframework.mock.web.MockHttpServletRequest cannot be cast to org.springframework.web.multipart.MultipartHttpServletRequest

有没有一种方法可以在不更改现有代码的情况下测试该方法?该类在整个应用程序中使用,我担心我可能会破坏其他东西。


手掌心
浏览 565回答 1
1回答

拉风的咖菲猫

你试一试MockMultipartFile myFile = new MockMultipartFile("data", "myFile.txt", "text/plain", "myFileContent".getBytes());mockMVC.perform(MockMvcRequestBuilders.multipart("/mappingUrl")                    .file(myFile)).andExpect(status().isOk());正如这里所解释的
随时随地看视频慕课网APP

相关分类

Java
我要回答