Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## junit.framework
Class TestCase

    java.lang.Object
      |
      +--junit.framework.Assert
            |
            +--junit.framework.TestCase

Direct Known Subclasses:
  ExceptionTestCase

public abstract class TestCase
extends Assert
implements Test

A test case defines the fixture to run multiple tests. To define a test case
1) implement a subclass of TestCase
2) define instance variables that store the state of the fixture
3) initialize the fixture state by overriding `setUp`
4) clean-up after a test by overriding `tearDown`.
Each test runs in its own fixture so there can be no side effects among test runs. Here is an example:

     public class MathTest extends TestCase {
         protected double fValue1;
         protected double fValue2;

         public MathTest(String name) {
             super(name);
         }

        protected void setUp() {
             fValue1= 2.0;
             fValue2= 3.0;
         }
     }

For each test implement a method which interacts with the fixture. Verify the expected results with assertions specified by calling `assert` with a boolean.

        protected void testAdd() {
            double result= fValue1 + fValue2;
            assert(result == 5.0);
        }

Once the methods are defined you can run them. The framework supports both a static type safe and more dynamic way to run a test. In the static way you override the runTest method and define the method to be invoked. A convenient way to do so is with an anonymous inner class.

     Test test= new MathTest("add") {
            public void runTest() {
                testAdd();
            }
     };
     test.run();

The dynamic way uses reflection to implement `runTest`. It dynamically finds and invokes a method. In this case the name of the test case has to correspond to the test method to be run.

     Test= new MathTest("testAdd");
     test.run();

The tests to be run can be collected into a TestSuite. JUnit provides different test runners which can run a test suite and collect the results. A test runner either expects a static method `suite` as the entry point to get a test to run or it will extract the suite automatically.

     public static Test suite() {
          suite.addTest(new MathTest("testAdd"));
          suite.addTest(new MathTest("testDivideByZero"));
          return suite;
      }

See Also:
  `TestResult`, `TestSuite`

Constructor Summary
`TestCase(java.lang.String name)` Constructs a test case with the given name.

Method Summary
`int` | `countTestCases()` Counts the number of test cases executed by run(TestResult result).
`protected TestResult` | `createResult()` Creates a default TestResult object
`java.lang.String` | `getName()` Gets the name of a TestCase
`java.lang.String` | `name()` Deprecated. use getName()
`TestResult` | `run()` A convenience method to run this test, collecting the results with a default TestResult object.
`void` | `run(TestResult result)` Runs the test case and collects the results in TestResult.
`void` | `runBare()` Runs the bare test sequence.
`protected void` | `runTest()` Override to run the test and assert its state.
`void` | `setName(java.lang.String name)` Sets the name of a TestCase
`protected void` | `setUp()` Sets up the fixture, for example, open a network connection.
`protected void` | `tearDown()` Tears down the fixture, for example, close a network connection.
`java.lang.String` | `toString()` Returns a string representation of the test case

Methods inherited from class junit.framework.Assert
`assert, assert, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertNotNull, assertNotNull, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### TestCase

    public TestCase(java.lang.String name)

  Constructs a test case with the given name.

Method Detail

### countTestCases

    public int countTestCases()

  Counts the number of test cases executed by run(TestResult result).
  Specified by:
    countTestCases in interface Test

### createResult

    protected TestResult createResult()

  Creates a default TestResult object
  See Also:
    `TestResult`

### name

    public java.lang.String name()

  Deprecated. use getName()

  Gets the name of the test case.

### run

    public TestResult run()

  A convenience method to run this test, collecting the results with a default TestResult object.
  See Also:
    `TestResult`

### run

    public void run(TestResult result)

  Runs the test case and collects the results in TestResult.
  Specified by:
    run in interface Test

### runBare

    public void runBare()
                 throws java.lang.Throwable

  Runs the bare test sequence.
  Throws:
    java.lang.Throwable - if any exception is thrown

### runTest

    protected void runTest()
                    throws java.lang.Throwable

  Override to run the test and assert its state.
  Throws:
    java.lang.Throwable - if any exception is thrown

### setUp

    protected void setUp()
                  throws java.lang.Exception

  Sets up the fixture, for example, open a network connection. This method is called before a test is executed.

### tearDown

    protected void tearDown()
                     throws java.lang.Exception

  Tears down the fixture, for example, close a network connection. This method is called after a test is executed.

### toString

    public java.lang.String toString()

  Returns a string representation of the test case
  Overrides:
    toString in class java.lang.Object

### getName

    public java.lang.String getName()

  Gets the name of a TestCase
  Returns:
    returns a String

### setName

    public void setName(java.lang.String name)

  Sets the name of a TestCase
  Parameters:
    `name` - The name to set

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD