我的程序需要经常与目录(具有层次结构)进行交互,我需要对其进行测试。因此,我需要在JUnit期间创建一个目录(然后创建子目录和文件),然后在测试后删除该目录。
有没有一种方便的方法呢?
答案 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