Class ExternalResource

java.lang.Object
org.junit.rules.ExternalResource
All Implemented Interfaces:
TestRule
Direct Known Subclasses:
TemporaryFolder

public abstract class ExternalResource extends Object implements TestRule
A base class for Rules (like TemporaryFolder) that set up an external resource before a test (a file, socket, server, database connection, etc.), and guarantee to tear it down afterward:
 public static class UsesExternalResource {
  Server myServer= new Server();

  @Rule
  public ExternalResource resource= new ExternalResource() {
      @Override
      protected void before() throws Throwable {
          myServer.connect();
         };

      @Override
      protected void after() {
          myServer.disconnect();
         };
     };

  @Test
  public void testFoo() {
      new Client().run(myServer);
     }
 }
 
Since:
4.7
  • Constructor Details

    • ExternalResource

      public ExternalResource()
  • Method Details

    • apply

      public Statement apply(Statement base, Description description)
      Description copied from interface: TestRule
      Modifies the method-running Statement to implement this test-running rule.
      Specified by:
      apply in interface TestRule
      Parameters:
      base - The Statement to be modified
      description - A Description of the test implemented in base
      Returns:
      a new statement, which may be the same as base, a wrapper around base, or a completely new Statement.
    • statement

      private Statement statement(Statement base)
    • before

      protected void before() throws Throwable
      Override to set up your specific external resource.
      Throws:
      Throwable - if setup fails (which will disable after
    • after

      protected void after()
      Override to tear down your specific external resource.