伙计们。我是学习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;
}
}
现在我想为此编写junit测试。但是我找不到excel上载测试的类似示例,请帮帮我,谢谢!
答案 0 :(得分:0)
没有必要自动上传excel文件。假设您的浏览器运行正常。但是您必须测试数据的处理。
在测试用例中,您必须:
MultipartFile testDataFile
,ModelAndView testDataMav
excelImport(testDataFile, testDataMav)
答案 1 :(得分:0)
您可以创建一个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 = "filename")