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.
    • 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.