junit 4中对指定异常的测试
junit 4中,也可以测试指定的异常是否出现了,比如:
public class Person { private final String name; private final int age; public Person(String name, int age) { this.name = name; this.age = age; if (age <= 0) { throw new IllegalArgumentException('Invalid age:' + age); } }}
import static org.hamcrest.Matchers.*;import static org.junit.Assert.*;import org.junit.Rule;import org.junit.Test;import org.junit.rules.ExpectedException;public class PersonTest { @Rule public ExpectedException exception = ExpectedException.none(); @Test public void testExpectedException() { exception.expect(IllegalArgumentException.class); exception.expectMessage(containsString('Invalid age')); new Person('Joe', -1); }}
@Test(expected = IllegalArgumentException.class)public void testExpectedException2() { new Person('Joe', -1);}