Nếu bạn cần một thư mục tạm thời để thử nghiệm và bạn đang sử dụng jUnit, @Rule
cùng với việc TemporaryFolder
giải quyết vấn đề của bạn:
@Rule
public TemporaryFolder folder = new TemporaryFolder();
Từ tài liệu :
Quy tắc tạm thời cho phép tạo các tệp và thư mục được đảm bảo sẽ bị xóa khi phương thức kiểm tra kết thúc (cho dù nó vượt qua hay thất bại)
Cập nhật:
Nếu bạn đang sử dụng JUnit Jupiter (phiên bản 5.1.1 trở lên), bạn có tùy chọn sử dụng JUnit Pioneer là Gói mở rộng JUnit 5.
Sao chép từ tài liệu dự án :
Ví dụ, bài kiểm tra sau đăng ký phần mở rộng cho một phương thức kiểm tra duy nhất, tạo và ghi một tệp vào thư mục tạm thời và kiểm tra nội dung của nó.
@Test
@ExtendWith(TempDirectory.class)
void test(@TempDir Path tempDir) {
Path file = tempDir.resolve("test.txt");
writeFile(file);
assertExpectedFileContent(file);
}
Thông tin thêm trong JavaDoc và JavaDoc của TempDirectory
Học sinh lớp
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>
Cập nhật 2:
Các @TempDir chú thích đã được thêm vào 5.4.0 phát hành JUnit Jupiter như một tính năng thử nghiệm. Ví dụ được sao chép từ Hướng dẫn sử dụng 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));
}