Java 如何为单元测试创建多级文件夹结构
我需要这样的文件夹结构:Java 如何为单元测试创建多级文件夹结构,java,junit,Java,Junit,我需要这样的文件夹结构: home --level1 --level2a --level2b 我可以用junit的临时目录创建第一个级别,但是如何创建它下面的级别呢 @Rule public TemporaryFolder home= new TemporaryFolder(); @Before public void setUp() { File level1= home.newFolder("le
home
--level1
--level2a
--level2b
我可以用junit的临时目录创建第一个级别,但是如何创建它下面的级别呢
@Rule
public TemporaryFolder home= new TemporaryFolder();
@Before
public void setUp()
{
File level1= home.newFolder("level1");
}
试试这个:
package com.sandbox;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import java.io.File;
import static org.junit.Assert.assertTrue;
public class SandboxTest {
@Rule
public TemporaryFolder folder = new TemporaryFolder();
private File level1;
private File level2a;
private File level2b;
@Before
public void setUp() throws Exception {
level1 = folder.newFolder("level1");
level2a = folder.newFolder("level1/level2a");
level2b = folder.newFolder("level1/level2b");
}
@Test
public void whenCreatingNestedFoldersThenAllGetDeleted() {
assertTrue(level1.exists());
assertTrue(level2a.exists());
assertTrue(level2b.exists());
System.out.println(level1.getAbsolutePath());
}
}
它将完全按照您的预期工作。测试运行后,将清理所有设备 这个答案对于JUnit4.12不再有效。文件夹名称不能由多个由文件分隔符分隔的路径组件组成。请使用newFolder('MyParentFolder','MyFolder')来创建文件夹的层次结构。正如@MrKiller21所说,运行该示例的正确方法是:
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
import java.io.File;
import static org.junit.Assert.assertTrue;
public class SandboxTest {
@Rule
public TemporaryFolder folder = new TemporaryFolder();
private File level1;
private File level2a;
private File level2b;
@Before
public void setUp() throws Exception {
level1 = folder.newFolder("level1");
level2a = folder.newFolder("level1", "level2a");
level2b = folder.newFolder("level1", "level2b");
}
@Test
public void whenCreatingNestedFoldersThenAllGetDeleted() {
assertTrue(level1.exists());
assertTrue(level2a.exists());
assertTrue(level2b.exists());
System.out.println(level1.getAbsolutePath());
}
}