У меня есть нижеприведенный контроллер электронной почты для отправки электронной почты с объектом RequestPart DTO (userDTO) и файлом Multipart (максимум 3 файла).где userDTO - это объект JSON
Я пытался использовать почтальон, и он отлично работает для отправки электронной почты с вложениями, однако мне нужно разработать модульное тестирование с использованием MockMVC, и я не могу найти подходящих примеров для этих комбинаций Multipartи запрос части.Когда я попытался использовать приведенный ниже тестовый класс, я не смог поразить мой контроллер, который вызовет электронную почту.
Мой контроллер
@PostMapping(path = "/api/email/sendEmail)
public ResponseEntity<UserDto> sendEmail(@RequestPart(value = "file", required = false) MultipartFile[] uploadfile,
@RequestPart UserDto userDTO, WebRequest webRequest) {
webRequest.setAttribute("userDTO", userDTO, RequestAttributes.SCOPE_REQUEST);
UserDto obj = emailService.sendEmail(userDTO, uploadfile);
return new ResponseEntity<>(obj, HttpStatus.OK);
}
МойJSON (userDTO), который входит в часть запроса
{
"sender":"sender@gmail.com",
"recipients":"receiver@gmail.com",
"subject":"Hi Testing Mail API",
"content":"This is my email"
}
Мой тестовый класс
@ContextConfiguration
@WebAppConfiguration
public class ServicesApplicationTests {
@Autowired
private WebApplicationContext webApplicationContext;
private MockMvc mockMvc;
@Test
public void testEmail() throws Exception {
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
mockMvc.perform(post("/api/email/sendEmail")
.contentType(MediaType.APPLICATION_JSON)
.content("{ \"sender\":\"sender@gmail.com\",\"recipients\":\"receiver@gmail.com\",\"subject\":\"Hi Testing Mail API\",\"content\":\"This is my email\"}")
.accept(MediaType.APPLICATION_JSON));
}
Любые выводы будут высоко оценены.Спасибо