У меня есть контроллер, который принимает два RequestPart: JSON и MultipartFile:
@PostMapping(value = "/mail", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Report> mail(@RequestPart("data") MailMessageDto dto,
@RequestPart(name = "attachments", required = false) List<MultipartFile> attachments,
Locale locale) {
Пишу тесты, пока такие:
@Test
public void receiveAndSend() throws Exception {
MockMultipartFile multipartFile = new MockMultipartFile(TEST_FILE, getOriginalFilename(),
CONTENT_TYPE, new FileInputStream(new File(TEST_FILE_PATH)));
String json = asJson(new MailMessageDto(TO, TITLE, CONTENT));
MockHttpServletRequestBuilder builder = multipart(controllerMask)
.file(multipartFile)
.contentType(MediaType.MULTIPART_FORM_DATA)
.content(json);
result = mockMvc.perform(builder)
.andDo(print())
.andExpect(status().isOk())
.andReturn();
assertNull(result.getResponse().getErrorMessage());
}
Пишет:
MockHttpServletResponse:
Status = 400
Error message = Required request part 'data' is not present
Headers = {}
Content type = null
Body =
Forwarded URL = null
Redirected URL = null
Cookies = []
Как мы видим, не задано имя RequestPart (хотя, мне кажется, проблема не только в этом). Подскажите, как правильно отправить JSON?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости