如何测试与文件系统相关的行为并删除创建的目录

时间:2011-07-10 00:25:32

标签: unit-testing junit

我的程序需要经常与目录(具有层次结构)进行交互,我需要对其进行测试。因此,我需要在JUnit期间创建一个目录(然后创建子目录和文件),然后在测试后删除该目录。

有没有一种方便的方法呢?

4 个答案:

答案 0 :(得分:1)

查看java.io.File上的方法。如果不合适,请解释原因。

答案 1 :(得分:1)

您应该在BeforeClass / Before JUnit带注释的方法中创建测试目录结构,并在AfterClass / After中删除它们(查看JUnit常见问题解答,例如How can I run setUp() and tearDown() code once for all of my tests?)。

如果java.io.File未提供准备目录结构所需的全部内容,请查看com.google.common.io.Files(google guava)或org.apache.commons.io.FileUtils(apache commons io)。

答案 2 :(得分:1)

如果您可以使用JUnit 4.7,则可以使用TemporaryFolder规则:

@RunWith(JUnit4.class)
public class FooTest {
  @Rule
  public TemporaryFolder tempFolder = new TemporaryFolder();

  @Test
  public void doStuffThatTouchesFiles() {
    File root = tempFolder.newFolder("root");
    MyProgram.setRootTemporaryFolder(root);

    ... continue your test
  }
}

您还可以使用@Before方法中的规则。从JUnit 4.9开始,您将使规则字段成为静态,因此您可以使用@BeforeClass方法中的规则。

有关详细信息,请参阅this article

答案 3 :(得分:0)

您只需创建一个tem目录即可。 看看How to create a temporary directory/folder in Java?

如果您需要远程创建目录,请连接ssh并执行ssh命令

一些ssh libs SSH Connection Java