Class TestFactory

java.lang.Object
com.clarkware.junitperf.TestFactory
All Implemented Interfaces:
junit.framework.Test
Direct Known Subclasses:
TestMethodFactory

public class TestFactory extends Object implements junit.framework.Test
The TestFactory class creates thread-local TestSuite instances.

This factory class should be used in cases when a stateful test is intended to be decorated by a LoadTest. A stateful test is defined as any test that defines test-specific state in its setUp() method.

Use of the TestFactory ensures that each thread spawned by a LoadTest contains its own TestSuite instance containing all tests defined in the specified TestCase class.

A typical usage scenario is as follows:

 Test factory = new TestFactory(YourTestCase.class);
 LoadTest test = new LoadTest(factory, numberOfUsers, ...);
 ...
 

Of course, static variables cannot be protected externally, so tests intended to be run in a multi-threaded environment should ensure that the use of static variables is thread-safe.

This class is dependent on Java 2. For earlier platforms a local cache implementation should be changed to use, for example, a HashMap to track thread-local information.

Author:
Mike Clark, Clarkware Consulting, Inc., Ervin Varga
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Class
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    TestFactory(Class testClass)
    Constructs a TestFactory instance.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Returns the number of tests in this test.
    protected junit.framework.Test
     
    protected junit.framework.TestSuite
     
    protected junit.framework.TestSuite
     
    void
    run(junit.framework.TestResult result)
    Runs an instance of the Test class and collects its result in the specified TestResult.
    Returns the test description.

    Methods inherited from class java.lang.Object

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

    • testClass

      protected final Class testClass
  • Constructor Details

    • TestFactory

      public TestFactory(Class testClass)
      Constructs a TestFactory instance.
      Parameters:
      testClass - The TestCase class to load test.
  • Method Details

    • run

      public void run(junit.framework.TestResult result)
      Runs an instance of the Test class and collects its result in the specified TestResult.

      Each invocation of this method triggers the creation of a new Test class instance as specified in the construction of this TestFactory.

      Specified by:
      run in interface junit.framework.Test
      Parameters:
      result - Test result.
    • countTestCases

      public int countTestCases()
      Returns the number of tests in this test.
      Specified by:
      countTestCases in interface junit.framework.Test
      Returns:
      Number of tests.
    • toString

      public String toString()
      Returns the test description.
      Overrides:
      toString in class Object
      Returns:
      Description.
    • getTest

      protected junit.framework.Test getTest()
    • getTestSuite

      protected junit.framework.TestSuite getTestSuite()
    • makeTestSuite

      protected junit.framework.TestSuite makeTestSuite()