Junit 测试exception

Posted HF_Cherish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Junit 测试exception相关的知识,希望对你有一定的参考价值。

有两种方法:

一、使用ExpectedException

仅在junit4.7以上支持。不仅可以测试捕获到某异常,也可以测试异常message。

使用例子如下:

@Rule
    public ExpectedException exception = ExpectedException.none();

    @Test
    public void shouldThrowExceptionWhenSumGivenOneNegativeNumber() throws Exception {
        exception.expect(Exception.class);
        exception.expectMessage(containsString("negatives not allowed"));
        exception.expectMessage(containsString("-1"));
        StringCalculator.calculate("-1,1");
    }

public static int calculate(String numbers) throws Exception {
       throw new Exception("negatives not allowed: -1");
    }

注意事项:

1. ExpectedException 必须是public

 

二、使用annotation

这个只能测存在异常,测不了异常message

使用方法:

@Test(expected = Exception.class)
    public void testException() throws Exception {
        StringCalculator.calculate("-1,-1");
    }

 

以上是关于Junit 测试exception的主要内容,如果未能解决你的问题,请参考以下文章

JUnit测试提示Java.lang.Exception: No runnable methods

SpringBoot Junit 单元测试,提示:java.lang.Exception: No tests found matching

Junit测试出现异常:Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform.com

Junit测试出现异常:Exception in thread "main" java.lang.NoSuchMethodError: org.junit.platform.com

为啥 JUnit 测试异常总是失败? [复制]

如何将JUnit 4测试添加到JUnit 3测试套件中