org.junit
Annotation Type Test


@Retention(value=RUNTIME)
@Target(value=METHOD)
public @interface Test

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);
    }
 


Optional Element Summary
 boolean checkJoin
          Optionally set checkJoin to false to not require all non-daemon threads to join.
 boolean checkLucky
          Optionally set checkLucky to false to not check for lucky thread termination without join.
 boolean checkThreads
          Optionally set checkThreads to false to not detect failures in all threads.
 Class<? extends Throwable> expected
          Optionally specify expected, a Throwable, to cause a test method to succeed iff an exception of the specified class is thrown by the method.
 long timeout
          Optionally specify timeout in milliseconds to cause a test method to fail if it takes longer than that number of milliseconds.
 

expected

public abstract Class<? extends Throwable> expected
Optionally specify expected, a Throwable, to cause a test method to succeed iff an exception of the specified class is thrown by the method.

Default:
org.junit.Test.None.class

timeout

public abstract long timeout
Optionally specify timeout in milliseconds to cause a test method to fail if it takes longer than that number of milliseconds.

Default:
0L

checkThreads

public abstract boolean checkThreads
Optionally set checkThreads to false to not detect failures in all threads.

Default:
true

checkJoin

public abstract boolean checkJoin
Optionally set checkJoin to false to not require all non-daemon threads to join.

Default:
true

checkLucky

public abstract boolean checkLucky
Optionally set checkLucky to false to not check for lucky thread termination without join.

Default:
true