Junit Test Cases For Exception Example In Java

In this we will see how to write Junit if our method has some logic where we are throwing an exception, something like below.

public void checkEmployeeId(Employee employee) {
if (employee.getEmpId() == null) {
    throw new IdNotFoundException(“Id is empty”);
}

}

 

package test;

import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;

class IdNotFoundException extends RuntimeException {

	private static final long serialVersionUID = 1L;

	String message;

	public IdNotFoundException(String message) {
		super();
		this.message = message;
	}

}

class Employee {
	String empId;
	String empName;

	public String getEmpId() {
		return empId;
	}

	public void setEmpId(String empId) {
		this.empId = empId;
	}

	public String getEmpName() {
		return empName;
	}

	public void setEmpName(String empName) {
		this.empName = empName;
	}

	public void checkEmployeeId(Employee employee) {
		if (employee.getEmpId() == null) {
			throw new IdNotFoundException("Id is empty");
		}

	}

}

public class TestCaseForException {

	public static Employee employeeObj;

	@Rule
	public ExpectedException thrown = ExpectedException.none();

	@BeforeClass
	public static void beforeClass() {
		employeeObj = new Employee();

	}

	@Test(expected = IdNotFoundException.class)
	public void testGetEmployeeDetails() {

		// empId will be null even we will not set
		employeeObj.setEmpId(null);

		employeeObj.checkEmployeeId(employeeObj);
		thrown.expect(IdNotFoundException.class);

	}
}

Run the above example as a Junit Test.