我发送带有图像文件的请求(图片上的数字1)和输入(输入被隐藏)。我的控制器看起来像这样(MealDto具有MultipartFile字段):
@PutMapping("/{id}")
Mono<MealDto> editMeal(@PathVariable String id, @Valid MealDto mealDto) {
return mealService.updateMeal(id, mealDto);
}
一切正常,所以我想编写一些测试。我从桌面读取图像并使用了MultipartBodyBuilder:
File file = new File("C:\\Users\\xxx\\Desktop\\2.jpeg");
ByteArrayResource byteArrayResource = new ByteArrayResource(Files.readAllBytes(file.toPath())) {
@Override
public String getFilename() {
return "2.jpeg";
}
};
MultipartBodyBuilder bodyBuilder = new MultipartBodyBuilder();
bodyBuilder.part("name", update.getName());
bodyBuilder.part("recipe", update.getRecipe());
bodyBuilder.part("description", update.getDescription());
bodyBuilder.part("imageToSave", byteArrayResource, IMAGE_JPEG);
webTestClient.put().uri(URI)
.body(BodyInserters.fromObject(bodyBuilder.build()))
.exchange()
.expectStatus().isOk();
图像上的2号是我通过webTestClient发送的,并且得到了什么错误(图片3号)。 在健美运动中没有图像,效果很好-但我想用图像测试案例。