因为我的软件构造课程lab3中要求我们使用一个自定义异常,但是Junit并没有一个很好的测试异常的方法。
下面给出一种简单容易理解的测试异常的写法
@Test
public void YourTest() throws YourException{
Throwable th=null;
try{
yourmethon(...);
}catch (YourException e){
th=e;
}
assertEquals("Your message",th.getMessage());
}
其实throwable类型是error和exception的父类,可以用来捕获所有抛出来的异常,和它的信息。
对于Junit中的操作,就是判断自己抛出的异常信息是不是与自己预期的相等。
此外,如果同一异常但是不抛出任何的信息时,有两种处理的方法
1.设置一个bool flag,在catch到异常的时候设置为true,然后在try...catch...结构外面测试flag是否为true
2.直接在外面用instanceof判断抛出的异常是不是自己自定义的
综上,我在lab3里这么写