Class EnvironmentVariables
java.lang.Object
org.junit.contrib.java.lang.system.EnvironmentVariables
- All Implemented Interfaces:
org.junit.rules.TestRule
The
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.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.junit.runners.model.Statementapply(org.junit.runners.model.Statement base, org.junit.runner.Description description) Delete multiple environment variables.private voidgetFieldValue(Class<?> klass, Object object, String name) Set the value of an environment variable.private voidprivate voidwriteVariableToBuffer(String name, String value) private voidwriteVariableToEnvMap(String name, String value)
-
Field Details
-
buffer
-
statementIsExecuting
private boolean statementIsExecuting
-
-
Constructor Details
-
EnvironmentVariables
public EnvironmentVariables()
-
-
Method Details
-
set
Set the value of an environment variable.- Parameters:
name- the environment variable's name.value- the environment variable's new value. May benull.- Returns:
- the rule itself.
-
clear
Delete multiple environment variables.- Parameters:
names- the environment variables' names.- Returns:
- the rule itself.
-
writeVariableToEnvMap
-
set
-
writeVariableToBuffer
-
copyVariablesFromBufferToEnvMap
private void copyVariablesFromBufferToEnvMap() -
apply
public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description) - Specified by:
applyin interfaceorg.junit.rules.TestRule
-
getEditableMapOfVariables
-
getTheCaseInsensitiveEnvironment
-
getFieldValue
private static Map<String,String> getFieldValue(Class<?> klass, Object object, String name) throws NoSuchFieldException, IllegalAccessException
-