java - 使用 spring 集成测试 MultipartFile 上传
问题描述
我正在尝试为我的 Post 端点编写集成测试。这是一个 2 部分过程的一部分,其中公共端点馈送到执行工作核心的服务端点。这是公共端点,因此响应是模拟的。
我正在使用 springMVC 并且我的代码工作正常,但是当尝试使用 MockMvc.perform 来发布包含内容的帖子时,我似乎收到了“所需请求部分“文件”不存在”的响应。
在代码中,我使用 HttpEntity 将文件发送到服务并且有效,但我看不到它在这里工作。
任何帮助将不胜感激。
@PostMapping("/save/image")
public ResponseEntity saveImage(@RequestParam("file") MultipartFile image)
{
// functionality
}
解决方案
您应该已经发布了您已经拥有的测试代码,以便我们查看它。但无论如何,这是一个如何在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());
推荐阅读
- javascript - 我应该什么时候开始和结束我的 node.js SQL 连接,我应该从一开始就使用池吗?
- java - 当我回到屏幕时游戏停止
- python - win10检测不到conda中pip安装的egg包
- scala - 如何以有效的方式从两个列表中创建一个新列表
- android - 如何通过按钮删除recyclerview适配器中的最后一项?
- python - Python argparse.ArgumentParser 无法区分 `--modes` 和 `--mode`
- django - 为什么我会收到 django 的循环导入错误?
- javascript - 如何显示警告框输出,函数内部也有计算
- algorithm - 如何设计多目标A*star算法?
- java - 在 Android 的 web 视图上打开 PDF 文件