【发布时间】:2020-04-11 05:19:41
【问题描述】:
我正在为我的控制器类编写单元测试。我正在使用弹簧 webflux。因此,我正在使用WebTestClient 编写测试。这是我的控制器方法
@PutMapping("/updatedocument/{documentType}")
public ResponseEntity<String> updateDocument(@PathVariable String documentType,
@RequestParam("file") MultipartFile file) {
...................
}
当我从 Postman 或任何其他客户端调用时,此代码正在运行。我在编写单元测试时遇到困难。我得到了
“所需的 MultipartFile 参数‘文件’不存在”
错误。这是我的测试方法。
@Test
void updateDocument() throws IOException {
.............
MultipartBodyBuilder multipartBodyBuilder = new MultipartBodyBuilder();
multipartBodyBuilder.part("file", new ClassPathResource("somefile"))
.contentType(MediaType.MULTIPART_FORM_DATA)
webTestClient.put()
.uri("/customer/updatedocument/ID")
.body(BodyInserters.fromMultipartData(multipartBodyBuilder.build()))
.exchange()
.expectStatus().isOk();
}
非常感谢任何建议。请注意。我使用的是WebTestClient 而不是MovkMvc
【问题讨论】:
标签: java spring-boot unit-testing spring-webflux