14

我想创建一个代表这种树的 baseFolder 的 JUnit TemporyFolder:

baseFolder/subFolderA/subSubFolder
          /subFolderB/file1.txt

据我了解,我可以设置一个 TemporaryFolder,然后可以使用位于该文件夹中的“newFolder()”伪文件夹创建。但是我怎样才能在下面创建图层呢?特别是在测试后清理的方式。

4

2 回答 2

15

temporaryFolder.newFolder(String... folderNames)将整个层次结构作为参数:

@Rule
public TemporaryFolder temporaryFolder = new TemporaryFolder();

@Test
public void test() throws Exception {
    File child = temporaryFolder.newFolder("grandparent", "parent", "child"); //...

    assertEquals("child", child.getName());
    assertEquals("parent", child.getParentFile().getName());
    assertEquals("grandparent", child.getParentFile().getParentFile().getName());
    System.out.println(child.getAbsolutePath());
}

它通过了测试并打印:

/var/folders/.../T/junit8666449860303204067/grandparent/parent/child
于 2016-09-04T13:11:53.323 回答
0

TemporaryFolder 有一个newFolder(String...folderNames)允许您创建子目录的方法。

tempFolder.newFolder("subFolderA", "subSubFolder")

http://junit.org/junit4/javadoc/4.12/org/junit/rules/TemporaryFolder.html#newFolder(java.lang.String...)

于 2016-09-04T13:11:46.100 回答