首页 > 解决方案 > 使用 spring 集成测试 MultipartFile 上传

问题描述

我正在尝试为我的 Post 端点编写集成测试。这是一个 2 部分过程的一部分,其中公共端点馈送到执行工作核心的服务端点。这是公共端点,因此响应是模拟的。

我正在使用 springMVC 并且我的代码工作正常,但是当尝试使用 MockMvc.perform 来发布包含内容的帖子时,我似乎收到了“所需请求部分“文件”不存在”的响应。

在代码中,我使用 HttpEntity 将文件发送到服务并且有效,但我看不到它在这里工作。

任何帮助将不胜感激。

@PostMapping("/save/image")
public ResponseEntity saveImage(@RequestParam("file") MultipartFile image) 
{
// functionality
}

标签: javaspring-mvcmockito

解决方案


您应该已经发布了您已经拥有的测试代码,以便我们查看它。但无论如何,这是一个如何在MockMvc.

File file = new File("path/to/file.jpg");
MockMultipartFile upload = new MockMultipartFile("file", "file.jpg",
                                 MediaType.IMAGE_JPEG_VALUE,
                                 Files.readAllBytes(file.toPath()));
mockMvc.perform(multipart("/save/image").file(upload)).andExpect(status().isNoContent());

推荐阅读