Eğer test için geçici bir dizin gerekiyor ve, JUnit kullanıyorsanız @Rule
ile birlikte TemporaryFolder
çözer senin sorunun:
@Rule
public TemporaryFolder folder = new TemporaryFolder();
Gönderen belgeler :
TemporaryFolder Kuralı, sınama yöntemi tamamlandığında (geçip geçmediği) silinmesi garanti edilen dosya ve klasörlerin oluşturulmasına izin verir
Güncelleme:
JUnit Jupiter (sürüm 5.1.1 veya üstü) kullanıyorsanız, JUnit 5 Extension Pack olan JUnit Pioneer'ı kullanma seçeneğiniz vardır.
Proje belgelerinden kopyalandı :
Örneğin, aşağıdaki sınama, tek bir sınama yöntemi için uzantıyı kaydeder, bir dosya oluşturur ve geçici dizine yazar ve içeriğini denetler.
@Test
@ExtendWith(TempDirectory.class)
void test(@TempDir Path tempDir) {
Path file = tempDir.resolve("test.txt");
writeFile(file);
assertExpectedFileContent(file);
}
JavaDoc ve TempDirectory JavaDoc'unda daha fazla bilgi
Gradle:
dependencies {
testImplementation 'org.junit-pioneer:junit-pioneer:0.1.2'
}
Uzman:
<dependency>
<groupId>org.junit-pioneer</groupId>
<artifactId>junit-pioneer</artifactId>
<version>0.1.2</version>
<scope>test</scope>
</dependency>
Güncelleme 2:
@TempDir açıklama deneysel bir özellik olarak JUnit Jüpiter 5.4.0 serbest bırakmak için ilave edildi. JUnit 5 Kullanıcı Kılavuzundan kopyalanan örnek :
@Test
void writeItemsToFile(@TempDir Path tempDir) throws IOException {
Path file = tempDir.resolve("test.txt");
new ListWriter(file).write("a", "b", "c");
assertEquals(singletonList("a,b,c"), Files.readAllLines(file));
}