Class ExternalResource

  • All Implemented Interfaces:
    TestRule
    Direct Known Subclasses:
    TemporaryFolder

    public abstract class ExternalResource
    extends java.lang.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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void after()
      Override to tear down your specific external resource.
      Statement apply​(Statement base, Description description)
      Modifies the method-running Statement to implement this test-running rule.
      protected void before()
      Override to set up your specific external resource.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • 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 java.lang.Throwable
        Override to set up your specific external resource.
        Throws:
        java.lang.Throwable - if setup fails (which will disable after
      • after

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