Class RestoreSystemProperties

java.lang.Object
org.junit.rules.ExternalResource
org.junit.contrib.java.lang.system.RestoreSystemProperties
All Implemented Interfaces:
org.junit.rules.TestRule

public class RestoreSystemProperties extends org.junit.rules.ExternalResource
The RestoreSystemProperties rule undoes changes of system properties when the test finishes (whether it passes or fails).

Let's assume the system property YourProperty has the value YourValue. Now run the test

   public void YourTest {
     @Rule
     public final TestRule restoreSystemProperties = new RestoreSystemProperties();

     @Test
     public void overrideProperty() {
       System.setProperty("YourProperty", "other value");
       assertEquals("other value", System.getProperty("YourProperty"));
     }
   }
 
After running the test, the system property YourProperty has the value YourValue again.
  • Field Details

    • originalProperties

      private Properties originalProperties
  • Constructor Details

    • RestoreSystemProperties

      @Deprecated public RestoreSystemProperties(String... properties)
      Deprecated.
      Please use RestoreSystemProperties(). The rule restores all properties. That's why you don't have to specify the properties anymore.
      Creates a RestoreSystemProperties rule that restores all system properties.
    • RestoreSystemProperties

      public RestoreSystemProperties()
      Creates a RestoreSystemProperties rule that restores all system properties.
      Since:
      1.8.0
  • Method Details

    • add

      @Deprecated public void add(String property)
      Deprecated.
      Simply remove all calls to this method. RestoreSystemProperties restores all properties automatically. That's why you don't have to add the properties anymore.
      Does nothing.
      Since:
      1.6.0
    • before

      protected void before() throws Throwable
      Overrides:
      before in class org.junit.rules.ExternalResource
      Throws:
      Throwable
    • copyOf

      private Properties copyOf(Properties source)
    • after

      protected void after()
      Overrides:
      after in class org.junit.rules.ExternalResource