有没有办法使用junit测试/模拟文件输入?

时间:2015-11-03 21:16:18

标签: java testing junit

我试图在不使用真正的xls文件的情况下测试以下代码...

File file = new File("file.xls");
final FileInputStream input = new FileInputStream(file);

我的问题是我无法创建File的实例,我不知道如何模拟我正在创建一个新文件以及如何模拟期望的内容。

有没有办法用junit做到这一点?

由于

1 个答案:

答案 0 :(得分:1)

是的,有几种不同的方式。

您可以使用类似Powermock的内容拦截对new的调用。请参阅此其他答案,我将详细解释如何执行此操作EasyMock - mock object returned from new Object

你真的想要excel文件中的字节或" excel对象"?传递一个Workbook对象或用于解析下游excel的任何对象然后使用依赖注入可能值得重构。然后,您的测试可以注入一个模拟的Workbook对象而不是真实的文件。