JUnit time test

The time test is used to check that if a test case is completed within the specified time or not. JUnit terminate and mark it failed automatically if it takes more time than the specified milliseconds. We have to specify time in milliseconds in @Test(timeout = timeInMilliSeconds) action.

Example:

DivisionTestCase.java

import com.w3schools.business.*;
import static org.junit.Assert.*;
import org.junit.Test;
 
/**
 * This is test case class for time out test.
 * @author w3schools
 */
public class DivisionTestCase {
	//DivisionTest class objects
	DivisionTest divisionTest1 = new DivisionTest(10, 2); 
	DivisionTest divisionTest2 = new DivisionTest(10, 0); 
 
	//Test case for division
	@Test
	public void test() {
		assertEquals(5, divisionTest1.division());
	}
 
	//Test case for print result.
	@Test(timeout=1000)
	public void testPrintResult() {
		divisionTest1.printResult();
	}
 
	//Test case for expected ArithmeticException, 
	//As in this case ArithmeticException
	// is the expected exception so 
	//JUnit will pass this unit test.
	@Test(expected = ArithmeticException.class)  
	public void testException() {
		assertEquals(5, divisionTest2.division());
	}
}

DivisionTest.java

/**
 * This is simple java class containing division method.
 * @author w3schools
 */
public class DivisionTest {
	//data members
	int num1, num2, result = 0;
 
	//parameterised constructor
	public DivisionTest(int num1, int num2){
		this.num1 = num1;
		this.num2 = num2;
	}
 
	//division method
	public int division() throws ArithmeticException{
		result = num1/num2;
		return result;
	}
 
	//print result, while(true) is used for infinite loop. 
	public void printResult(){
		System.out.println("Result = " +result);
		while(true);
	}
}

Output:

junit5
 
Download this example.
 
Next Topic: JUnit suite test.
Previous Topic: Junit ignore test.