我有一段使用环境变量的Java代码,代码的行为取决于此变量的值。我想用不同的环境变量值测试此代码。如何在JUnit中做到这一点?

我总体上看过some ways to set environment variables in Java,但是我对它的单元测试方面更感兴趣,尤其是考虑到测试之间不应互相干扰。

最佳答案

System Rules提供了用于设置环境变量的JUnit规则。

import org.junit.contrib.java.lang.system.EnvironmentVariables;

public class EnvironmentVariablesTest {
  @Rule
  public final EnvironmentVariables environmentVariables
    = new EnvironmentVariables();

  @Test
  public void setEnvironmentVariable() {
    environmentVariables.set("name", "value");
    assertEquals("value", System.getenv("name"));
  }
}


免责声明:我是系统规则的作者。

09-04 18:46