我试图在不使用真正的xls文件的情况下测试以下代码...
File file = new File("file.xls");
final FileInputStream input = new FileInputStream(file);
我的问题是我无法创建File的实例,我不知道如何模拟我正在创建一个新文件以及如何模拟期望的内容。
有没有办法用junit做到这一点?
由于
答案 0 :(得分:1)
是的,有几种不同的方式。
您可以使用类似Powermock的内容拦截对new的调用。请参阅此其他答案,我将详细解释如何执行此操作EasyMock - mock object returned from new Object
你真的想要excel文件中的字节或" excel对象"?传递一个Workbook
对象或用于解析下游excel的任何对象然后使用依赖注入可能值得重构。然后,您的测试可以注入一个模拟的Workbook对象而不是真实的文件。