The Test annotation tells JUnit that the public void method
to which it is attached can be run as a test case. To run the method,
JUnit first constructs a fresh instance of the class then invokes the
annotated method. Any exceptions thrown by the test will be reported
by JUnit as a failure. If no exceptions are thrown, the test is assumed
to have succeeded.
A simple test looks like this:
public class Example {
@Test
public void method() {
org.junit.Assert.assertTrue( new ArrayList().isEmpty() );
}
}
The Test annotation supports two optional parameters.
The first, expected , declares that a test method should throw
an exception. If it doesn't throw an exception or if it throws a different exception
than the one declared, the test fails. For example, the following test succeeds:
@Test(expected=IndexOutOfBoundsException.class) public void outOfBounds() {
new ArrayList<Object>().get(1);
}
The second optional parameter, timeout , causes a test to fail if it takes
longer than a specified amount of clock time (measured in milliseconds). The following test fails:
@Test(timeout=100) public void infinity() {
while(true);
}
|