Java 使用WebtestClient测试多部分文件

Java 使用WebtestClient测试多部分文件,java,spring-boot,unit-testing,spring-webflux,Java,Spring Boot,Unit Testing,Spring Webflux,我正在为我的控制器类编写单元测试。我正在使用SpringWebFlux。因此,我正在使用WebTestClient编写测试。这是我的控制器方法 @PutMapping("/updatedocument/{documentType}") public ResponseEntity<String> updateDocument(@PathVariable String documentType, @

我正在为我的控制器类编写单元测试。我正在使用SpringWebFlux。因此,我正在使用
WebTestClient
编写测试。这是我的控制器方法

@PutMapping("/updatedocument/{documentType}")
public ResponseEntity<String> updateDocument(@PathVariable String documentType,
                                             @RequestParam("file") MultipartFile file) {
     ...................
}

任何建议都将不胜感激。请注意。我使用的是
WebTestClient
,而不是
MovkMvc

,我能够解决这个问题。罪魁祸首是我的控制器方法,而不是测试方法

必须改变控制器方法中的一些东西。当使用弹簧网流量(反应)时,我们应该使用

1.
@RequestPart
而不是
@RequestParam

2. <代码>文件部分而不是
多部分文件

控制器方法如下所示

@PutMapping("/updatedocument/{documentType}")
public ResponseEntity<String> updateDocument(@PathVariable DocumentType documentType,
                                             @RequestPart("file") FilePart filePart) {
   .....................
}
@PutMapping(“/updatedocument/{documentType}”)
public ResponseEntity updateDocument(@PathVariable DocumentType DocumentType,
@请求部分(“文件”)文件部分(文件部分){
.....................
}

可以将FilePart转换为文件对象

我能够解决这个问题。罪魁祸首是我的控制器方法,而不是测试方法

必须改变控制器方法中的一些东西。当使用弹簧网流量(反应)时,我们应该使用

1.
@RequestPart
而不是
@RequestParam

2. <代码>文件部分而不是
多部分文件

控制器方法如下所示

@PutMapping("/updatedocument/{documentType}")
public ResponseEntity<String> updateDocument(@PathVariable DocumentType documentType,
                                             @RequestPart("file") FilePart filePart) {
   .....................
}
@PutMapping(“/updatedocument/{documentType}”)
public ResponseEntity updateDocument(@PathVariable DocumentType DocumentType,
@请求部分(“文件”)文件部分(文件部分){
.....................
}
可以将FilePart转换为文件对象