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

标签 java excel testing junit apache-poi

各位,我是一个学习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.xlstest/resources 文件夹中的文件。参数“filename”应与@RequestParam中使用的值相同; @RequestParam(value = "文件名")

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

相关文章:

java - 更改为 float 后: "Cannot confirm float from string"

java - 从基于 REST 的 Spring Controller 返回 "Resource"是否有意义?

java - 使用保留下划线的 xjb 覆盖 JAXB 属性名称

java - 我们如何在 Java 中测试 Actors?

ruby-on-rails - 当我需要相关数据时,如何使用 Cucumber 进行测试?

java - 使用java在android中的文本和整数之间迭代以显示专业的启动画面

vba - 使用 Excel 中的 VBA 将 2 个单元格的内容合并到另一个第 3 个单元格中

java - 读取 Excel 的内容并使用我的 Robotium 测试用例中的值

Java - 追加Excel

java - Mockito 注解和方法调用的区别