Java中测试异常的多种方式(2)
发表于:2014-04-14来源:博客园作者:黄博文点击数:
标签:软件测试
这是最容易想到的一种方式,但是太啰嗦。 JUnit annotation方式 JUnit中提供了一个expected的annotation来检查异常。 1 2 3 4 5 6 @Test ( expected = IllegalArgumentException
这是最容易想到的一种方式,但是太啰嗦。
JUnit annotation方式
JUnit中提供了一个expected的annotation来检查异常。
1
2
3
4
5
6
|
@Test(expected = IllegalArgumentException.class)
public void shouldGetExceptionWhenAgeLessThan0() {
Person person = new Person();
person.setAge(-1);
}
|
这种方式看起来要简洁多了,但是无法检查异常中的消息。
ExpectedException rule
JUnit7以后提供了一个叫做ExpectedException的Rule来实现对异常的测试。
1
2
3
4
5
6
7
8
9
10
11
12
|
@Rule
public ExpectedException exception = ExpectedException.none();
@Test
public void shouldGetExceptionWhenAgeLessThan0() {
Person person = new Person();
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
|
<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>
|
原文转自:http://www.cnblogs.com/huang0925/p/3663074.html