我想在不使用真实的xls文件的情况下测试以下代码…
File file = new File("file.xls");
final FileInputStream input = new FileInputStream(file);
我的问题是我无法创建File实例,也不知道如何模拟创建新文件并模拟预期结果。
是否有办法在JUnit中实现这个功能?
谢谢。
我想在不使用真实的xls文件的情况下测试以下代码…
File file = new File("file.xls");
final FileInputStream input = new FileInputStream(file);
我的问题是我无法创建File实例,也不知道如何模拟创建新文件并模拟预期结果。
是否有办法在JUnit中实现这个功能?
谢谢。
是的,有几种不同的方法。
您可以使用类似Powermock的东西来拦截对new的调用。请参见此其他答案,我在其中详细解释了如何做到这一点 EasyMock - mock object returned from new Object
您实际上想要来自Excel文件的字节还是“Excel对象”?将代码重构以传递一个Workbook
对象或您用于解析Excel下游的任何内容,然后使用依赖项注入可能是值得的。然后,您的测试可以注入一个模拟的Workbook对象而不是一个真实文件。