当前位置: 首页 > 知识库问答 >
问题:

HttpServletRequest到MultipartHttpServletRequest:Junit中的ClassCastException[重复]

臧令
2023-03-14

我试图为包含以下方法的控制器类编写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

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

我问了一些类似的问题,下面是一些比较接近的问题:

无法施放模拟

将HttpServletRequest中的remoteUser值传递给mockmvc执行测试

共有1个答案

宰父霖
2023-03-14

只是试试

MockMultipartFile myFile = new MockMultipartFile("data", "myFile.txt", "text/plain", "myFileContent".getBytes());
mockMVC.perform(MockMvcRequestBuilders.multipart("/mappingUrl")
                    .file(myFile)).andExpect(status().isOk());

正如这里所解释的

 类似资料:
  • 我有一个用于java程序的库。 它包含下一行: 它在java8上运行正常,但在我尝试在java11上启动它之后,我得到了ClassCastException JAVAClassCastException:类jdk。内部的加载器。ClassLoaders$AppClassLoader不能强制转换为java类。网URLClassLoader 有可能解决这个pb而不修改库吗?AFAIK,Java应该向下

  • 公共类用户实现Serializable{ 而metghod是 }

  • 有谁知道如何修复这个类投射异常错误?我得到:“线程”main“中的异常java.lang.ClassCastException:java.util.HashMap$Entry不能转换为java.lang.Integer? 我的问题是,我以为我调用的是那个位置的整数,但显然不是?这项作业两小时后到期,所以任何帮助都是非常感谢的。评论应该告诉你发生了什么。

  • 我有资源类-UserResource接口,并定义了一个endpoint为GetUsers。 现在,我希望根据用户状态(活动、非活动)和它不是强制性的来过滤这些用户,所以如果我没有传递状态,它将获取所有用户。 2.第二种方法是从HttpServletRequest获取查询参数。因此,我已经获得了HttpServletRequest并从HttpServletRequest中获取查询参数。

  • 问题内容: 我读过一些写在“ ClassCastException”上的文章,但是我对此并不了解。有一篇好文章还是简短的解释? 问题答案: 直接来自API规范: 抛出该异常以指示代码已尝试将对象强制转换为不是实例的子类。 因此,例如,当一个人尝试将 强制转换为时,它不是的子类,因此将抛出。

  • 这是一个例外。。 Java语言lang.ClassCastException:org。XHTMLender。提供BlockBox无法转换为组织。XHTMLender。牛顿表。桌子盒