org.junit.rules.TestRule
public class EnvironmentVariables
extends java.lang.Object
implements org.junit.rules.TestRule
EnvironmentVariables
rule allows you to set environment variables
for your test. All changes to environment variables are reverted after the
test.
public class EnvironmentVariablesTest { @Rule public final EnvironmentVariables environmentVariables = new EnvironmentVariables(); @Test public void test() { environmentVariables.set("name", "value"); assertEquals("value", System.getenv("name")); } }
Common variables can be set directly after creating the rule
public class EnvironmentVariablesTest { @Rule public final EnvironmentVariables environmentVariables = new EnvironmentVariables() .set("name", "value"); @Test public void test() { assertEquals("value", System.getenv("name")); } }
You can ensure that some environment variables are not set by calling
clear(String...)
.
Warning: This rule uses reflection for modifying internals of the
environment variables map. It fails if your SecurityManager
forbids
such modifications.
Constructor | Description |
---|---|
EnvironmentVariables() |
Modifier and Type | Method | Description |
---|---|---|
org.junit.runners.model.Statement |
apply(org.junit.runners.model.Statement base,
org.junit.runner.Description description) |
|
EnvironmentVariables |
clear(java.lang.String... names) |
Delete multiple environment variables.
|
EnvironmentVariables |
set(java.lang.String name,
java.lang.String value) |
Set the value of an environment variable.
|
public EnvironmentVariables set(java.lang.String name, java.lang.String value)
name
- the environment variable's name.value
- the environment variable's new value. May be null
.public EnvironmentVariables clear(java.lang.String... names)
names
- the environment variables' names.public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description)
apply
in interface org.junit.rules.TestRule
Copyright © 2011–2018. All rights reserved.