This section contains the detail about @Test annotation in JUnit.
@Test annotation in JUnit
The Test annotation tells JUnit that the public void method to which it is attached can be run as a test case. For example :
Pet.java
package devmanuals.junit; public class Pet { public Pet() { } public String bow() { return "Bow"; } }
PetTest.java(Test Class)
package devmanuals.junit; import static org.junit.Assert.*; import org.junit.Test; import devmanuals.junit.Pet; public class PetTest { @Test public void testPet() { } @Test public void testBow() { Pet testPet = new Pet(); assertTrue("Bow".equals(testPet.bow())); } }
Output
Optional Parameter of Test Annotation
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 :
package devmanuals.junit; import java.util.ArrayList; import org.junit.Test; public class ExceptionTest { @Test(expected = IndexOutOfBoundsException.class) public void outOfBounds() { new ArrayList<Object>().get(1); } }
Output :
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 :
package devmanuals.junit; import org.junit.Test; public class TimeoutTest { @Test(timeout = 100) public void infinity() { while (true) ; } }
Output:
As expected above test fails :
[ 0 ] Comments