异常也是单元测试的一部分,java开发中,如何利用JUnit测试异常呢。
总结下来有两种方法,一种是注解,一种是try-catch,我们先来实现一个异常类
public class MyException extends RuntimeException{
//....omit
}
需要测试的方法
public class MyClass{
public void execute(){
throw new MyException("A");
}
}
1.注解方式非常简单,如下
public class MyTest{
@Test(expected=MyException.class)
public void testExecute(){
MyClass myclass = new MyClass();
myclass.execute();
}
}
2.try-catch模式的异常测试类虽然比较麻烦,但是可以验证更多信息,如下
public class MyTest{
@Test
public void testExecute(){
MyClass myclass = new MyClass();
try{
myclass.execute();
//跳到这步说明没有抛出异常,需要向测试框架报错
fail("the test should throw a exception!");
}catch(MyException ex){
//跳到这里代表测试成功,进一步验证消息
assertEquals("A",ex.getMessage());
}
}
}