我想将一些文件复制到一个临时目录中。但是我用 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'
}