TempDir 为空

时间:2021-06-26 14:37:06

标签: java junit junit5

我想将一些文件复制到一个临时目录中。但是我用 File 注释的 @TempDir 似乎没有被注入。

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;

import java.io.File;

public class MyTempFileTest {

    @TempDir
    public File tempFolder;
    
    @Test
    public void testTempFolder() {
        Assertions.assertNotNull(tempFolder); 
    }
 }

结果是org.opentest4j.AssertionFailedError: expected: not <null>

相反,我希望它是一个随机的临时目录,就像 Junit4 中的 @Rule TemporaryFolder tmpSudokus = new TemporaryFolder() 一样。

根据 docs,我可以注释 Java.io.File

如果我尝试将 tempDir 作为目录传递

    @Test
    public void testTempFolderParam(@TempDir File tempFolder) {
        Assertions.assertNotNull(tempFolder);
    }

我得到 org.junit.jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter [java.io.File tempFolder] in executable [public void my.package.MyTempFileTest.testTempFolderParam(java.io.File)].

测试是一个android项目的一部分,我的依赖是:

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.2'
    testImplementation 'org.junit.jupiter:junit-jupiter-params:5.7.2'
}

0 个答案:

没有答案