У меня есть простая конечная точка PUT в приложении Spring Boot:
@PutMapping()
public ResponseEntity<String> upload(@RequestParam("cats") MultipartFile file) throws IOException {
Я пытаюсь создать тест для контроллера, используя MockMVC
:
import org.springframework.test.web.servlet.MockMvc;
@RunWith(SpringRunner.class)
@WebMvcTest(CatController.class)
public class CatControllerTest {
@Autowired
private MockMvc mockMvc;
...
Для POST
конечные точки Я использую что-то вроде этого:
MockMultipartFile multipartFile = new MockMultipartFile("file", new FileInputStream("myCats.csv"));
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).alwaysDo(print()).build();
MvcResult result = mockMvc.perform(MockMvcRequestBuilders.multipart("/uploadCats").file(multipartFile))
.andExpect(status().isOk())
.andReturn();
Но при попытке перевести вышеуказанный вызов в конечную точку PUT я обнаружил, что могу создать
MockMvcRequestBuilders.put("/catUpload")
Но тогда я могу ' t привязать к нему multipart
Или я могу сделать:
MockMvcRequestBuilders.multipart(...)
Но тогда я не могу привязать к нему put
.
Я видел пост об этой проблеме, но всем им было несколько лет. Есть ли способ сделать это?