Package org.junit

Annotation Type Test


  • @Retention(RUNTIME)
    @Target(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);
        }
     

    Since:
    4.0
    • Optional Element Summary

      Optional Elements 
      Modifier and Type Optional Element Description
      java.lang.Class<? extends java.lang.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.
    • Element Detail

      • expected

        java.lang.Class<? extends java.lang.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

        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