作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带有deleteDir函数的文件实用程序类
@Override
public boolean deleteDir(File file) {
File[] contents = file.listFiles();
if (contents != null) {
for (File f : contents) {
if (! Files.isSymbolicLink(f.toPath())) {
deleteDir(f);
}
}
}
file.delete();
return true;
}
我有另一个类,它的方法调用文件实用程序的这个 deleteDir 函数
@Override
public void zipFolder(List<String> listOfFiles, File file, ZipOutputStream zos) {
try {
int index = 0;
for (File f : file.listFiles()) {
if (this.fileValidator.isHiddenFile(f))
continue;
if (f.isFile()) {
File returnedZipFile = zipFileInFolder(f);
File fileToBeRemoved = writeIntoZip(returnedZipFile, index, zos);
this.fileUtility.deleteDir(fileToBeRemoved);
index++;
} else if (f.isDirectory()) {
List<String> listOfFilesInDirectory = this.directoryProcessor.getAllFilesInDirectory(f);
String fullZipFullName = this.pathNameUtility.getFullFileName(f.getName(), FileConstants.ZIP);
FileOutputStream fos = new FileOutputStream(fullZipFullName);
ZipOutputStream zosInner = new ZipOutputStream(fos);
zipFolder(listOfFilesInDirectory, f, zosInner);
}
}
zos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
我读到我们不应该模拟文件。我想对这两种方法进行单元测试。我怎样才能这样做?谢谢
最佳答案
解决方案不是一个Mock
,而是一个Spy
,spy就像选择性模拟,您可以拥有一些调用实际操作的方法,而其他方法可以进行模拟。因此,在测试 zipFolder
时,您可以模拟您的 deleteDir
调用。
关于java - 具有删除目录方法的单元测试文件实用程序类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59873947/
我是一名优秀的程序员,十分优秀!