
http://junit.sourceforge.net/junit3.8.1/javadoc/junit/framework/TestCase.html
1 |
|
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:
1 |
public class MathTest extends TestCase { |
For each test implement a method which interacts with the fixture. Verify the expected results with assertions specified by calling
1 |
assertTrue |
with a boolean.
1 |
public void testAdd() { |
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.
1 |
TestCase test= new MathTest("add") { |
The dynamic way uses reflection to implement
1 |
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.
1 |
TestCase test = new MathTest("testAdd"); |
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
1 |
suite |
as the entry point to get a test to run or it will extract the suite automatically.
1 |
public static Test suite() { |




近期评论