Class StandardErrorStreamLog

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

@Deprecated public class StandardErrorStreamLog extends Object implements org.junit.rules.TestRule
Deprecated.
Please use SystemErrRule.

The StandardErrorStreamLog records writes to the standard error stream. The text written is available via getLog().

   public void MyTest {
     @Rule
     public final StandardErrorStreamLog log = new StandardErrorStreamLog();

     @Test
     public void captureErrorStream() {
       System.err.print("hello world");
       assertEquals("hello world", log.getLog());
     }
   }
 
You can clear the log if you only want to test parts of the text written to the standard error stream.
   @Test
   public void captureErrorStream() {
     System.err.print("before");
     log.clear();
     System.err.print("afterwards");
     assertEquals("afterwards", log.getLog());
   }
 

Prevent output to the standard error stream

In general it is not necessary that a test writes to the standard error stream. Avoiding this output may speed up the test and reduce the clutter on the commandline.

The test does not write to the stream if the rule is created with the LogMode.LOG_ONLY mode.

 @Rule
 public final StandardErrorStreamLog log = new StandardErrorStreamLog(LOG_ONLY);
  • Field Details

    • systemErrRule

      private final SystemErrRule systemErrRule
      Deprecated.
  • Constructor Details

    • StandardErrorStreamLog

      public StandardErrorStreamLog()
      Deprecated.
      Please use new SystemErrRule().enableLog().

      Creates a rule that records writes while they are still written to the standard error stream.

    • StandardErrorStreamLog

      public StandardErrorStreamLog(LogMode mode)
      Deprecated.
      Please use new SystemErrRule().enableLog() instead of new StandardErrorStreamLog(LogMode.LOG_AND_WRITE_TO_STREAM) or new SystemErrRule().enableLog().mute() instead of new StandardErrorStreamLog(LogMode.LOG_ONLY).

      Creates a rule that records writes to the standard error stream according to the specified LogMode.

      Parameters:
      mode - how the rule handles writes to the standard error stream.
      Throws:
      NullPointerException - if mode is null.
  • Method Details

    • clear

      @Deprecated public void clear()
      Deprecated.
      Please use SystemErrRule.clearLog().

      Clears the log. The log can be used again.

    • getLog

      @Deprecated public String getLog()
      Deprecated.
      Please use SystemErrRule.getLog().

      Returns the text written to the standard error stream.

      Returns:
      the text written to the standard error stream.
    • apply

      public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement base, org.junit.runner.Description description)
      Deprecated.
      Specified by:
      apply in interface org.junit.rules.TestRule