Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java springboot:文件上传测试_Java_Spring_Spring Boot - Fatal编程技术网

Java springboot:文件上传测试

Java springboot:文件上传测试,java,spring,spring-boot,Java,Spring,Spring Boot,我试图在SpringREST应用程序中创建一个单元测试。该测试与多部分文件上载的端点相关 以下是我的方法在我的@RestController @PostMapping(“/upload”) 公共响应上载文件(@HasFileName@RequestParam(“文件”)多部分文件, @NotEmpty@RequestParam(“实体”)字符串实体、@NotEmpty@RequestParam(“语言”)字符串语言、, @NotEmpty@RequestParam(“lastModified”)

我试图在SpringREST应用程序中创建一个单元测试。该测试与多部分文件上载的端点相关

以下是我的方法在我的
@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());