一、mockMvc上传测试
- 上传代码:
File file = new File("test-DealerDiscountRate_20191024163505.xlsx");//上传的文件
MockMultipartFile multiFile = new MockMultipartFile("file", "test-DealerDiscountRate_20191024163505.xlsx",
MediaType.MULTIPART_FORM_DATA_VALUE, new FileInputStream(file));
//上传的地址及参数
ResultActions resultActions = mockMvc.perform(MockMvcRequestBuilders.
fileUpload("/service/dealerFinanceInfoMaintain/importDiscountRate")
.file(multiFile));
MvcResult mvcResult = resultActions.andDo(MockMvcResultHandlers.print())
.andExpect(MockMvcResultMatchers.status().isOk()).andReturn();
String result = mvcResult.getResponse().getContentAsString();
LOGGER.info("导入输出 :" + mvcResult.getResponse().getContentAsString());
JSONObject jsonObject = JSON.parseObject(result);
Assert.assertTrue(jsonObject.getString("code").equals("20000"));
二、mockMvc下载测试
- 下载代码
mockMvc.perform(
MockMvcRequestBuilders.post("/service/dealerFinanceInfoMaintain/downloadDealerFinance?" + Constants.TEST_KEY))
.andExpect(MockMvcResultMatchers.status().isOk()).andDo(new ResultHandler() {
@Override
public void handle(MvcResult result) throws Exception {
result.getResponse().setCharacterEncoding("UTF-8");
MockHttpServletResponse contentRespon = result.getResponse();
InputStream contentInStream = new ByteArrayInputStream(
contentRespon.getContentAsByteArray());
XSSFWorkbook resultExcel = new XSSFWorkbook(contentInStream);
Assert.assertEquals("multipart/form-data", contentRespon.getContentType());
XSSFSheet sheet = resultExcel.getSheet("经销商财务信息");
Assert.assertNotNull(sheet);
String fileName = "DealerFinanceInfo" + DateUtil.format(new Date(), DateUtil.FORMAT_DATETIME_YYYYMMDDHHMMSS)
+ ".xlsx";
String filePath = "test-"+fileName;
File file = new File(filePath);
OutputStream out = new FileOutputStream(file);
resultExcel.write(out);
resultExcel.close();
Assert.assertTrue(file.exists());