Jika Anda memerlukan direktori sementara untuk pengujian dan Anda menggunakan jUnit, @Rule
bersama dengan TemporaryFolder
memecahkan masalah Anda:
@Rule
public TemporaryFolder folder = new TemporaryFolder();
Dari dokumentasi :
Aturan TemporaryFolder memungkinkan pembuatan file dan folder yang dijamin akan dihapus ketika metode pengujian selesai (apakah itu lolos atau gagal)
Memperbarui:
Jika Anda menggunakan JUnit Jupiter (versi 5.1.1 atau lebih tinggi), Anda memiliki opsi untuk menggunakan JUnit Pioneer yang merupakan Paket Ekstensi JUnit 5.
Disalin dari dokumentasi proyek :
Misalnya, pengujian berikut mendaftarkan ekstensi untuk metode pengujian tunggal, membuat dan menulis file ke direktori sementara dan memeriksa kontennya.
@Test
@ExtendWith(TempDirectory.class)
void test(@TempDir Path tempDir) {
Path file = tempDir.resolve("test.txt");
writeFile(file);
assertExpectedFileContent(file);
}
Info selengkapnya di JavaDoc dan JavaDoc dari TempDirectory
Gradle:
dependencies {
testImplementation 'org.junit-pioneer:junit-pioneer:0.1.2'
}
Maven:
<dependency>
<groupId>org.junit-pioneer</groupId>
<artifactId>junit-pioneer</artifactId>
<version>0.1.2</version>
<scope>test</scope>
</dependency>
Pembaruan 2:
The @TempDir penjelasan ditambahkan ke JUnit Jupiter 5.4.0 rilis sebagai fitur eksperimental. Contoh disalin dari Panduan Pengguna JUnit 5 :
@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));
}