MockMvcRequestBuilders.multipart() Как отправить PUT запрос?
Код ниже работает хорошо, но посылает POST запросы, как мне отпроавитьPUT?
@Test
void updateDish() throws Exception {
MockMultipartFile emptyFile
= new MockMultipartFile(
"image",
"image.jpg",
MediaType.IMAGE_JPEG_VALUE,
new byte[0]
);
DishCreationDto dishCreationDto = getDishCreationDto();
mockMvc.perform(multipart("/admin/dishes")
.file(emptyFile)
.flashAttr("dish", dishCreationDto)
.with(csrf()))
.andExpect(redirectedUrl("/admin/dishes"));
Mockito.verify(dishService, Mockito.times(1)).saveDish(dishCreationDto);
}
Ответы (1 шт):
Автор решения: Nowhere Man
→ Ссылка
Можно создать кастомный билдер, который установит метод PUT в HTTP-запросе:
MockMultipartHttpServletRequestBuilder putMultipart = (MockMultipartHttpServletRequestBuilder)
MockMvcRequestBuilders.multipart("/admin/dishes")
.with(rq -> { rq.setMethod("PUT"); return rq; });
mockMvc.perform(putMultipart
.file(emptyFile)
.flashAttr("dish", dishCreationDto)
.with(csrf()))
.andExpect(redirectedUrl("/admin/dishes"));