使用Junit进行单元测试中保存文件的路径

mat_boy

在Java应用程序中,我有一个类的方法,仅使用文件名来保存文件。

public void doSomething(){
    final File file = new File("XXX"+(new Random().next())+".txt");
    file.createNewFile();
}

然后,在使用JUnit 4进行单元测试中,我运行执行该方法的类,并XXX.txt在项目的根文件夹中看到一个以name创建的文件。

@Test
public void doSomethingTest() throws Exception{
  //call doSomething();
  Path path = //to project folder
  Files.delete(path);
}

如何动态获取此路径,以便可以使用一种@After方法将其删除?

尼伯(JB Nizet)

最简单的方法是允许代码在创建文件的基础目录中注入代码,从而使代码可测试。

代替

public Foo() {
}

public void doSomething() {
    final File file = new File("XXX" + (new Random().next()) + ".txt");
    file.createNewFile();
}

采用

private File baseDirectory;

public Foo() {
    this(new File("."));
}

public Foo(File baseDirectory) {
    this.baseDirectory = baseDirectory;
}

public void doSomething() {
    final File file = new File(baseDirectory, "XXX" + (new Random().next()) + ".txt");
    file.createNewFile();
}

现在,您的测试可以创建一个临时的空目录,将其传递给构造函数,调用该方法,检查文件并在测试后将其删除。

无论如何,这可能是您想要的功能,因为对我而言,始终在当前目录中写入似乎不是一个好主意。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用JUnit(使用JVM)对SparseArray进行单元测试

使用Gradle在Android中使用JUnit进行单元测试

使用具有相对路径的文件进行 Visual Studio 单元测试

配置IntelliJ IDEA以使用JUnit进行单元测试

如何使用junit对HttpClient重试逻辑进行单元测试

使用JUnit(Java)进行硒单元测试

JUnit-如何对测试方法进行单元测试,该方法读取目录中的文件并使用外部库

使用.env文件通过Jest进行单元测试

如何使用MockHttpServletRequest对文件上传进行单元测试?

如何使用PropertySource文件进行单元测试?

如何使用R的testthat对单个文件进行单元测试?

使用Moq .net Core进行单元测试文件上传

使用文件中的数据进行单元测试

使用JUnit,Spring 4和Vaadin对单元进行单元测试时获得NPE

如何模拟要使用JUnit + Mockito进行单元测试的服务中使用的类

使用jUnit和Mockito进行外部REST API调用的单元测试

如何使用JUnit对时间相关的方法进行单元测试

使用Spring Boot,Kotlin和Junit进行休息控制器单元测试

对使用RTOS的项目进行单元测试

使用Mockito进行Runnable的单元测试

使用 MockEndPointsandSkip 进行 Camel 单元测试

使用GitLab CI进行单元测试

使用StaticLoggerBinder对类进行单元测试

使用PanicsWithValue进行Golang单元测试

Django使用ForeignKey进行单元测试

使用ObjectBox进行单元测试

使用Automake进行单元测试

使用Spring Security进行单元测试

使用 createSpyObj 对 observable 进行单元测试