我正在尝试为一个简单的方法编写Junit,该方法将文件名作为输入并返回字节数组作为输出。我遇到的困难是运行Junit时文件将无法使用。那么,我该如何测试这种方法呢? 我看到两个选择:
我正在粘贴以下方法的代码:
public byte[] readFileAndReturnBytes(String filePath) throws IOException {
InputStream is = null;
File file = null;
byte[] fileBytes = null;
try
{
file = new File(filePath);
is = new FileInputStream(file);
fileBytes = IOUtils.toByteArray(is);
}
catch(IOException e){
throw e;
}
finally{
if(is != null)
{
is.close();
file = null;
}
}
return fileBytes;
}
我正在使用Mockito进行嘲弄。有没有人有任何想法?
答案 0 :(得分:0)
对我来说,这里最好的选择是重构您的方法,使其收到File
而不是String filePath
。在这种情况下,您可以模拟文件并调用方法readFileAndReturnBytes(mockedFile)
。
File mockedFile = mock(File.class);
testClass.readFileAndReturnBytes(mockedFile);
如果您不想重构代码,建议您查看JUnit TempopratyFolder。