Test (JUnit API)

Junit


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
 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.

默认值:
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.

默认值:
0L