各位,我是一个学习java的初学者,现在我必须在我公司的演示项目中编写Excel上传功能的Junit测试。
@RequestMapping(value = "/excelImport")
public ModelAndView excelImport(@RequestParam(value = "filename")MultipartFile file,
ModelAndView mav) {
session.setAttribute("imported",false);//セッションのインポート記録をリセットして、次の操作を影響しないように
List<RetirementPayAndHealthInsurance> errorList= new ArrayList<>();//エラーデータリスト
List<RetirementPayAndHealthInsurance> importList = new ArrayList<>();//導入されたデータリスト
int wnt = 0;//エラー数
int cnt = 0;//正常数
String fileName = file.getOriginalFilename();
if(file.isEmpty()) { //ファイル選択なしにインポートボタンを押す場合
mav.setViewName("redirect:/retailList");
return mav;
}else {
try {
Map<String,List<RetirementPayAndHealthInsurance>> map = retirementPayAndHealthInsuranceService.batchImport(fileName, file);
errorList = map.get("errorList");
importList = map.get("importList");
} catch (Exception e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
if(errorList!=null) {//エラーリストあるの場合
wnt = errorList.size();//エラー数
mav.addObject("errorList",errorList);
session.setAttribute("errorList", errorList);
}
if(importList!=null) {
cnt = importList.size();//正常数
}
//インポートボタン と 導出ボタンを分けるため設定の記録
session.setAttribute("imported",true);
mav.addObject("wnt",wnt);//エラー数
mav.addObject("cnt",cnt);//正常数
mav.setViewName("/retailExcelImport");
return mav;
}
}
我将在下面解释我的逻辑。
Excel上传将处理并向我们显示成功导入的数据数量和错误,服务将成功列表,错误列表放入 map 中并返回到 Controller 然后计算它们的大小。然后我可以导出并重新编辑错误数据和再次执行此过程直至完成。
现在我想写这个的junit测试。但是我找不到类似的excel上传测试示例,请帮助我,谢谢!
最佳答案
您可以创建一个 MockMultiPartFile
并将其传递给您的测试方法:
MultipartFile file = new MockMultipartFile("filename", "someTestFile.xls", "application/vnd.ms-excel", new ClassPathResource("someTestFile.xls").getInputStream());
其中 someTestFile.xls
是 test/resources
文件夹中的文件。参数“filename”
应与@RequestParam中使用的值相同; @RequestParam(value = "文件名")
关于java - 如何编写 Excel Upload 的 Junit 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55135574/