【JAVA-UT】12、抛出了指定异常吗?

12 篇文章 0 订阅
12 篇文章 0 订阅

文|码术张

如何验证抛出的异常是指定的异常?

下面介绍两种方法。

方法一:
public class Test1 {
    @Test(expected = IllegalArgumentException.class)
    public void test1() {
        throw new IllegalArgumentException();
    }
}

期望的表达方式为

(expected = IllegalArgumentException.class)

抛异常的代码为:

throw new IllegalArgumentException();

意思为抛出一个异常IllegalArgumentException。

在实际代码中,将这句换成需要抛异常的代码即可。

如果抛出的异常与期望的一致,那么运行结果就是pass。

如果不一致,则会fail。

例如,正面这段代码,期望抛出异常IllegalArgumentException,实际抛的是NullPointerException。

public class Test2 {
    @Test(expected = IllegalArgumentException.class)
    public void test2() {
        throw new NullPointerException();
    }
}

运行结果会是fail,并且给出提示:

result.png

方法二
public class Test3 {
    @Rule
    public ExpectedException worker = ExpectedException.none();

    @Test
    public void test3() {
        worker.expect(IllegalArgumentException.class);
        throw new IllegalArgumentException();
    }
}

使用ExpectedException判断是否有期望的异常。

首先,声明一个ExpectedException类型的变量。

然后,告诉它期望的异常。

worker.expect(IllegalArgumentException.class);

意思是期望的异常为IllegalArgumentException。

throw new IllegalArgumentException();

抛出一个异常。写代码时,将这句换成实际要抛异常的代码。

如果抛出的与期望的异常一致,则pass。否则,fail,并给出错误提示。

例如,正面这段代码:

期望的是IllegalArgumentException。

实际的抛出的是NullPointerException。

public class Test4 {
    @Rule
    public ExpectedException worker = ExpectedException.none();

    @Test
    public void test4() {
        worker.expect(IllegalArgumentException.class);
        throw new NoSuchFieldError();
    }
}

运行结果如下:

result 2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值