gpt4 book ai didi

java - 如何编写Excel Upload的Junit测试?

转载 作者:行者123 更新时间:2023-11-28 21:18:07 24 4
gpt4 key购买 nike

伙计们,我是一个初学者学习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 上传将处理并向我们显示成功导入的数据编号和错误,服务将 successList、errorList 放入 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 = "filename")

关于java - 如何编写Excel Upload的Junit测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55135574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com