Personperson=newPerson(); exception.expect(IllegalArgumentException.class); exception.expectMessage(containsString("age is invalid")); person.setAge(-1);
}
这种方式既可以检查异常类型,也可以验证异常中的消息。
使用catch-exception库
有个catch-exception库也可以实现对异常的测试。
首先引用该库。
pom.xml
1 2 3 4 5 6 7 8
<dependency> <groupId>com.googlecode.catch-exception</groupId> <artifactId>catch-exception</artifactId> <version>1.2.0</version> <scope>test</scope><!-- test scope to use it only in tests --> </dependency>
然后这样书写测试。
1 2 3 4 5 6 7 8 9 10 11
@Test publicvoidshouldGetExceptionWhenAgeLessThan0() { Personperson=newPerson(); catchException(person).setAge(-1); assertThat(caughtException(),instanceOf(IllegalArgumentException.class)); assertThat(caughtException().getMessage(), containsString("age is invalid"));