|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.junit.rules.ExternalResource
org.junit.contrib.java.lang.system.ProvideSystemProperty
public class ProvideSystemProperty
The ProvideSystemProperty rule provides an arbitrary value for a
system property to a test. After the test the original value is restored. You
can ensure that a property is not set by providing null (or using
ClearSystemProperties).
Let's assume the system property MyProperty is not set and the system
property OtherProperty has the value OtherValue. Now run the
test
public void MyTest {
@Rule
public final ProvideSystemProperty provideSystemProperty
= new ProvideSystemProperty("MyProperty", "MyValue")
.and("OtherProperty", null);
@Test
public void overridesProperty() {
assertEquals("MyValue", System.getProperty("MyProperty"));
}
@Test
public void deletesProperty() {
assertNull(System.getProperty("OtherProperty"));
}
}
Both tests succeed and after the tests, the system property
MyProperty is not set and the system property OtherProperty
has the value OtherValue.
You can use a properties file to supply properties for the ProvideSystemProperty rule. The file can be from the file system or the class path. In the first case use
@Rule
public final ProvideSystemProperty properties = ProvideSystemProperty
.fromFile("/home/myself/example.properties");
and in the second case use
@Rule
public final ProvideSystemProperty properties = ProvideSystemProperty
.fromResource("example.properties");
If you want to set a property for a single test then you can use
RestoreSystemProperties
along with System.setProperty(String, String).
@Rule
public final TestRule restoreSystemProperties
= new RestoreSystemProperties();
@Test
public void test() {
System.setProperty("YourProperty", "YourValue");
...
}
| Constructor Summary | |
|---|---|
ProvideSystemProperty()
Deprecated. see setProperty(String, String). |
|
ProvideSystemProperty(String name,
String value)
|
|
| Method Summary | |
|---|---|
protected void |
after()
|
ProvideSystemProperty |
and(String name,
String value)
|
protected void |
before()
|
static ProvideSystemProperty |
fromFile(String name)
|
static ProvideSystemProperty |
fromResource(String name)
|
void |
setProperty(String name,
String value)
Deprecated. Please use RestoreSystemProperties
along with System.setProperty(String, String). |
| Methods inherited from class org.junit.rules.ExternalResource |
|---|
apply |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
@Deprecated public ProvideSystemProperty()
setProperty(String, String).
public ProvideSystemProperty(String name,
String value)
| Method Detail |
|---|
public static ProvideSystemProperty fromFile(String name)
throws IOException
IOException
public static ProvideSystemProperty fromResource(String name)
throws IOException
IOException
@Deprecated
public void setProperty(String name,
String value)
RestoreSystemProperties
along with System.setProperty(String, String).
This method is deprecated. If you're still using it, please replace your current code
@Rule
public final ProvideSystemProperty provideSystemProperty = new ProvideSystemProperty();
@Test
public void test() {
provideSystemProperty.setProperty("YourProperty", "YourValue");
...
}
with this code:
@Rule
public final TestRule restoreSystemProperties = new RestoreSystemProperties();
@Test
public void test() {
System.setProperty("YourProperty", "YourValue");
...
}
name - the name of the property.value - the new value of the property.
public ProvideSystemProperty and(String name,
String value)
protected void before()
throws Throwable
before in class org.junit.rules.ExternalResourceThrowableprotected void after()
after in class org.junit.rules.ExternalResource
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||