@Test(expected = ConfigurationException.class)
It has although the following disadvantages:
- you can not check details of the exception, like message or cause
- you can not do anything with the exception
It is a better solution to use the @Rule annotation from JUnit.
import org.hamcrest.core.StringContains; import org.junit.Assert; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @Rule public ExpectedException exception = ExpectedException.none(); @Test public void crowdUserDataThrowsExceptionForBlankInput() { exception.expect(IllegalArgumentException.class); exception.expectMessage("Username from CROWD must not be empty."); new CrowdDataImporter().new CrowdUserIdHolder(" ");}
It is also possible to check the expected exception message, using some subclass of Matcher:
@Test
public void testCreateSchedulerCalendar_emptyParam() {
exception.expect(SchedulerException.class);
exception.expectMessage(new StringContains("job.scheduler.fixtime"));
avatarSyncJobScheduler.createSchedulerCalendar("");
}
public void testCreateSchedulerCalendar_emptyParam() {
exception.expect(SchedulerException.class);
exception.expectMessage(new StringContains("job.scheduler.fixtime"));
avatarSyncJobScheduler.createSchedulerCalendar("");
}
You can find other Matcher implementations in the package org.hamcrest.core. It is per default added to the JUnit, so there is no need to add other maven dependencies is needed.
Nincsenek megjegyzések:
Megjegyzés küldése