JUnit4のTemporaryFolder的なやつですね。5.4から追加されて、アノテーションに EXPERIMENTAL
とあるのでまだ実験的な機能のようです。
サンプル
テストメソッド単位に一時ディレクトリを使う
- テストメソッドの引数として
java.nio.file.Path
を受け取り、org.junit.jupiter.api.io.TempDir
アノテーションを設定します java.nio.file.Path
は一時ディレクトリを示すパスになっています
@Test internal fun sample1(@TempDir tempDir: Path) { val file = tempDir.resolve("test.txt").toFile() file.writeText("test") assertThat(file.readText()) .isEqualTo("test") }
テストクラス内のすべてのテストメソッドで一時ディレクトリを使う
java.nio.file.Path
なインスタンス変数にorg.junit.jupiter.api.io.TempDir
アノテーションを設定します- 一時ディレクトリは、テストメソッド毎に異なるパスになります
class TempDirSample { @TempDir lateinit var tempDir: Path @Test internal fun sample1() { println("tempDir = ${tempDir}") } @Test internal fun sample2() { println("tempDir = ${tempDir}") } }