Java springboot:文件上传测试
我试图在SpringREST应用程序中创建一个单元测试。该测试与多部分文件上载的端点相关 以下是我的方法在我的Java springboot:文件上传测试,java,spring,spring-boot,Java,Spring,Spring Boot,我试图在SpringREST应用程序中创建一个单元测试。该测试与多部分文件上载的端点相关 以下是我的方法在我的@RestController @PostMapping(“/upload”) 公共响应上载文件(@HasFileName@RequestParam(“文件”)多部分文件, @NotEmpty@RequestParam(“实体”)字符串实体、@NotEmpty@RequestParam(“语言”)字符串语言、, @NotEmpty@RequestParam(“lastModified”)
@RestController
@PostMapping(“/upload”)
公共响应上载文件(@HasFileName@RequestParam(“文件”)多部分文件,
@NotEmpty@RequestParam(“实体”)字符串实体、@NotEmpty@RequestParam(“语言”)字符串语言、,
@NotEmpty@RequestParam(“lastModified”)@DateTimeFormat(iso=DateTimeFormat.iso.DATE\u TIME)LocalDateTime lastModifiedDateTime,
@NotEmpty@RequestParam(“createdDate”)@DateTimeFormat(iso=DateTimeFormat.iso.DATE\u TIME)LocalDateTime createdDateTime
抛出IOException{
我找不到从单元测试中的多部分中获取此信息的方法。我找不到关于为spring REST进行spring单元测试的文档,因此任何输入都将不胜感激
@试验
public void testUploadFile()引发异常{
ResultMatcher ok=MockMvcResultMatchers.status().isOk();
字符串filename=“test.txt”;
File File=新文件(“/test”+文件名);
delete();
MockMultipartFile MockMultipartFile=新的MockMultipartFile(“file”、“test.txt”、“multipart/form data”、“test data”.getBytes());
upload.uploadFile(mockMultipartFile,mockMultipartFile.getName())//缺少更多数据
//关于如何断言文件不是空的更多逻辑
}
原则上,测试应验证uploadFile方法()的结果:
该文件是一个输入参数,因此我不理解您为什么要验证它不是空的:我认为它可能有助于验证与其他模拟的交互(例如,检查文件是否在FileService.save()方法中使用)检查此测试类-->另一个注意事项:如果模拟使用该文件的服务类,则可以验证该参数是否为空,但这只有在RestController中操纵/准备该参数时才有意义。请参阅Mockito ArgumentCaptor
ResultActions result =
this.mockMvc.perform(multipart("/svc").file(file)
.header(HttpHeaders.AUTHORIZATION,
"Bearer token"))
.andExpect(content().string("response"))
.andExpect(status().isOk());