当前位置: 首页 > 知识库问答 >
问题:

如何编写目录到目录复制API的JUnit测试

秦浩漫
2023-03-14

我只想写一个JUnit测试用例,测试下面的代码是否成功地将目录复制到新目录。

File origPath = new File("/sourceDir/");

File newPath = new File("/destDir/");

try {
    FileUtils.copyDirectory(origPath, newPath);
    } catch (Throwable e) {

    }

请建议,我如何编写一个JUnit测试或模拟来测试上面的代码。

共有2个答案

李弘光
2023-03-14

您可以模拟,但这将只是测试您调用的一些方法,而不是测试它是否实际工作,即,它看起来更像一个集成测试,我将简单地创建几个真实的测试,例如:

  1. 检查假目录不存在(“asdlkjslajfrhg”),尝试复制它,并确保得到正确的异常
  2. 创建假目录,复制它,并确保新目录已创建且为空
  3. 创建一个假目录和几个内部有数据的文件,复制该目录并确保新目录已创建并包含所有内容相同的文件
  4. 确保每次测试后清洁所有内容

注意:JUnit的最新版本包括一个temporaryfolder类,它应该可以帮助您处理大部分“伪造目录”部分。另请参阅本文的示例。

韦繁
2023-03-14

您需要临时文件夹规则。

@Rule
public TemporaryFolder tempFolder = new TemporaryFolder();

然后创建一个新文件夹:

File source = tempFolder.newFolder();

然后调用copyDirectory-method:

FileUtils.copyDirectory(source.getAbsolutePath(), source.getParent() + "/dest");

然后您可以检查该文件夹是否存在:

new File(tempFolder.getRoot(), "dest").exists()
 类似资料:
  • 实际上,这将是一个更复杂的问题。我只想在测试中使用AspectJ。找到了使用if()连接点和一些静态布尔字段的建议。此外,首先我开始使用aspect作为我的基本测试方法的内部静态类。经过一些实验,我把它换成了自己的班级,但实际上并没有得到我想要的结果。所以,我只是创建了一些测试项目。Maven pom。xml: 类别:A: B: 测试类: Aspect类 主要类别: 运行测试和主要方法后我得到了结

  • 问题内容: 我曾经复制过一个目录树,但是已经过时了。我的目录包含一些子目录,其中一些包含文件,另一些包含更多子目录。 如何复制整棵树? 问题答案: 相信可以做到您想要的…(递归复制已完成)

  • 问题内容: 我有一个目录/ a / b / c,其中包含文件和子目录。我需要将/ a / b / c / *复制到/ x / y / z目录中。我可以使用哪些python方法? 我试过了,但是python尝试创建/ x / y / z并引发一个。 问题答案: 我发现此代码有效: 参考: Python 2:https://docs.python.org/2/distutils/apiref.html

  • 我目前正在处理一个现有的项目,该项目有一个具有以下内容的pom.xml文件: 我尝试了这个,但似乎不起作用: 谢谢你的帮助。

  • 我正在尝试用不同的名称同步文件夹的两个内容: 我想将的内容复制到远程主机上的,但不复制目录本身。我尝试过类似于,但rsync不支持这一点。 rsync总是创建

  • 问题内容: 将整个目录内容复制到Java或groovy中的另一个目录的方法? 问题答案: 将整个目录复制到保存文件日期的新位置。此方法将指定的目录及其所有子目录和文件复制到指定的目的地。目标是目录的新位置和名称。 如果目标目录不存在,则会创建该目录。如果目标目录确实存在,则此方法将源与目标合并,并且源优先。 为此,这是示例代码