我有一段使用环境变量的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"));
}
}
免责声明:我是系统规则的作者。