异常也是单元测试的一部分,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()); } } }