我正在尝试使用spring test测试文件上传。
@Test
public void testUploadDocument() {
File f = new File("C:\\Users\\JC\\Documents\\sample_test_2.xlsx");
System.out.println(f.isFile()+" "+f.getName()+f.exists());
FileInputStream fi1 = new FileInputStream(f);
MockMultipartFile fstmp = new MockMultipartFile("file", f.getName(), "text/plain", fi1);
MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
mockMvc.perform(MockMvcRequestBuilders.fileUpload("http://" + hostPort + "/AdminService/rest/document/saveDocument")
.file(fstmp)
.param("siteId","555").param("docTypeId","550").param("docSubTypeId", "5051").param("contentDate", "06-Oct-2017").param("contentDescription", "")
.param("docName", "Test Co-op Unit 2").param("isNewFile", "true"))
.andExpect(MockMvcResultMatchers.status().isOk());
}
即使我将其声明为POST,也不支持抛出请求方法POST。我也尝试了MockMvcRequestBuilders.post。但同样的问题。
@RequestMapping(value = "/saveDocument", method = RequestMethod.POST)
public ResponseEntity<String> saveDocument(
@RequestParam("siteId") Integer siteId, @RequestParam("docTypeId") Integer docTypeId,
@RequestParam("docSubTypeId") Integer docSubTypeId, @RequestParam("docName") String docName,
@RequestParam(value = "contentDescription", required = false) String contentDescription,
@RequestParam(value = "contentDate", required = false) String contentDate, @RequestParam(value = "docId", required = false) Integer docId,
@RequestParam(value = "isNewFile", required = false) boolean isNewFile,
@RequestParam(value = "file", required = false) MultipartFile file)