public abstract class

TestCase

extends Assert
implements Test
java.lang.Object
   ↳ junit.framework.Assert
     ↳ junit.framework.TestCase
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

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;

    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 assertTrue with a boolean.
    public void testAdd() {
        double result= fValue1 + fValue2;
        assertTrue(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.
 TestCase 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.
 TestCase= 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;
  }
 

Summary

Public Constructors
TestCase()
No-arg constructor to enable serialization.
TestCase(String name)
Constructs a test case with the given name.
Public Methods
int countTestCases()
Counts the number of test cases executed by run(TestResult result).
String getName()
Gets the name of a TestCase
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.
void setName(String name)
Sets the name of a TestCase
String toString()
Returns a string representation of the test case
Protected Methods
TestResult createResult()
Creates a default TestResult object
void runTest()
Override to run the test and assert its state.
void setUp()
Sets up the fixture, for example, open a network connection.
void tearDown()
Tears down the fixture, for example, close a network connection.
[Expand]
Inherited Methods
From class junit.framework.Assert
From class java.lang.Object
From interface junit.framework.Test

Public Constructors

public TestCase ()

Since: API Level 1

No-arg constructor to enable serialization. This method is not intended to be used by mere mortals without calling setName().

public TestCase (String name)

Since: API Level 1

Constructs a test case with the given name.

Public Methods

public int countTestCases ()

Since: API Level 1

Counts the number of test cases executed by run(TestResult result).

public String getName ()

Since: API Level 1

Gets the name of a TestCase

Returns
  • returns a String

public TestResult run ()

Since: API Level 1

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

See Also

public void run (TestResult result)

Since: API Level 1

Runs the test case and collects the results in TestResult.

public void runBare ()

Since: API Level 1

Runs the bare test sequence.

Throws
Throwable if any exception is thrown

public void setName (String name)

Since: API Level 1

Sets the name of a TestCase

Parameters
name The name to set

public String toString ()

Since: API Level 1

Returns a string representation of the test case

Returns
  • a printable representation of this object.

Protected Methods

protected TestResult createResult ()

Since: API Level 1

Creates a default TestResult object

See Also

protected void runTest ()

Since: API Level 1

Override to run the test and assert its state.

Throws
Throwable if any exception is thrown

protected void setUp ()

Since: API Level 1

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

Throws
Exception

protected void tearDown ()

Since: API Level 1

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

Throws
Exception