2015-11-03 81 views
5

我想不使用真正的XLS文件来测试下面的代码...是否有任何方法来测试/模拟使用junit的文件输入?

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

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

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

谢谢

+1

**我的问题是我无法创建文件**的实例 - 为什么? –

+0

没有办法制作一个新的File();我不知道哪个方法实现能够创建一个实例 – jpganz18

回答

1

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

您可以使用Powermock等功能来拦截对新的呼叫。看到这个其他答案,我解释了如何做到这一点详细EasyMock - mock object returned from new Object

你真的想要从Excel文件或“Excel对象”字节?可能值得重构,以传递一个Workbook对象或者任何你用来解析下游的excel然后使用依赖注入的东西。然后您的测试可以注入模拟工作簿对象而不是真实文件。

相关问题