弹簧单元测试文件上传

时间:2017-10-06 14:02:30

标签: java spring unit-testing

我正在尝试使用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)

0 个答案:

没有答案