Class TimedTest

java.lang.Object
junit.framework.Assert
junit.extensions.TestDecorator
com.clarkware.junitperf.TimedTest
All Implemented Interfaces:
junit.framework.Test

public class TimedTest extends junit.extensions.TestDecorator
The TimedTest is a test decorator that runs a test and measures the elapsed time of the test.

A TimedTest is constructed with a specified maximum elapsed time. By default, a TimedTest will wait for the completion of its decorated test and then fail if the maximum elapsed time was exceeded. Alternatively, a TimedTest can be constructed to immediately signal a failure when the maximum elapsed time of its decorated test is exceeded. In other words, the TimedTest will not wait for its decorated test to run to completion if the maximum elapsed time is exceeded.

For example, to decorate the ExampleTest as a TimedTest that waits for the ExampleTest test case to run to completion and then fails if the maximum elapsed time of 2 seconds is exceeded, use:

 Test timedTest = new TimedTest(new TestSuite(ExampleTest.class), 2000);
 
or, to time a single test method, use:
 Test timedTest = new TimedTest(new ExampleTest("testSomething"), 2000);
 

Alternatively, to decorate the ExampleTest.testSomething() test as a TimedTest that fails immediately when the maximum elapsed time of 2 seconds is exceeded, use:

 Test timedTest = new TimedTest(new ExampleTest("testSomething"), 2000, false);
 
Author:
Mike Clark, Clarkware Consulting, Inc., Ervin Varga
  • Field Summary

    Fields inherited from class junit.extensions.TestDecorator

    fTest
  • Constructor Summary

    Constructors
    Constructor
    Description
    TimedTest(junit.framework.Test test, long maxElapsedTime)
    Constructs a TimedTest to decorate the specified test with the specified maximum elapsed time.
    TimedTest(junit.framework.Test test, long maxElapsedTime, boolean waitForCompletion)
    Constructs a TimedTest to decorate the specified test with the specified maximum elapsed time.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Returns the number of tests in this timed test.
    protected long
    getElapsedTime(long beginTime)
     
    boolean
    Determines whether the maximum elapsed time of the test was exceeded.
    protected void
    printElapsedTime(long elapsedTime)
     
    void
    run(junit.framework.TestResult result)
    Runs the test.
    protected void
    runUntilTestCompletion(junit.framework.TestResult result)
    Runs the test until test completion and then signals a failure if the maximum elapsed time was exceeded.
    protected void
    runUntilTimeExpires(junit.framework.TestResult result)
    Runs the test and immediately signals a failure when the maximum elapsed time is exceeded.
    void
    Disables the output of the test's elapsed time.
    Returns the test description.

    Methods inherited from class junit.extensions.TestDecorator

    basicRun, getTest

    Methods inherited from class junit.framework.Assert

    assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame, format

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • TimedTest

      public TimedTest(junit.framework.Test test, long maxElapsedTime)
      Constructs a TimedTest to decorate the specified test with the specified maximum elapsed time.

      The TimedTest will wait for the completion of its decorated test and then fail if the maximum elapsed time was exceeded.

      Parameters:
      test - Test to decorate.
      maxElapsedTime - Maximum elapsed time (ms).
    • TimedTest

      public TimedTest(junit.framework.Test test, long maxElapsedTime, boolean waitForCompletion)
      Constructs a TimedTest to decorate the specified test with the specified maximum elapsed time.
      Parameters:
      test - Test to decorate.
      maxElapsedTime - Maximum elapsed time (ms).
      waitForCompletion - true (default) to indicate that the TimedTest should wait for its decorated test to run to completion and then fail if the maximum elapsed time was exceeded; false to indicate that the TimedTest should immediately signal a failure when the maximum elapsed time is exceeded.
  • Method Details

    • setQuiet

      public void setQuiet()
      Disables the output of the test's elapsed time.
    • countTestCases

      public int countTestCases()
      Returns the number of tests in this timed test.
      Specified by:
      countTestCases in interface junit.framework.Test
      Overrides:
      countTestCases in class junit.extensions.TestDecorator
      Returns:
      Number of tests.
    • outOfTime

      public boolean outOfTime()
      Determines whether the maximum elapsed time of the test was exceeded.
      Returns:
      true if the max elapsed time was exceeded; false otherwise.
    • run

      public void run(junit.framework.TestResult result)
      Runs the test.
      Specified by:
      run in interface junit.framework.Test
      Overrides:
      run in class junit.extensions.TestDecorator
      Parameters:
      result - Test result.
    • runUntilTestCompletion

      protected void runUntilTestCompletion(junit.framework.TestResult result)
      Runs the test until test completion and then signals a failure if the maximum elapsed time was exceeded.
      Parameters:
      result - Test result.
    • runUntilTimeExpires

      protected void runUntilTimeExpires(junit.framework.TestResult result)
      Runs the test and immediately signals a failure when the maximum elapsed time is exceeded.
      Parameters:
      result - Test result.
    • getElapsedTime

      protected long getElapsedTime(long beginTime)
    • printElapsedTime

      protected void printElapsedTime(long elapsedTime)
    • toString

      public String toString()
      Returns the test description.
      Overrides:
      toString in class junit.extensions.TestDecorator
      Returns:
      Description.