初步了解断言机制

这是我参与11月更文挑战的第26天,活动详情查看:2021最后一次更文挑战

断言机制

编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设。 可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。 可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。使用断言可以创建更稳定,品质更好且易于除错的代码。

这些断言方法都是org.junit.jupiter.api.Assertions的静态方法。

接下来,我们就演示一下,我们的断言机制

我们写一个简单的逻辑代码,让我们两个数相加,然后我们通过返回的数和我们理想的数进行判断

 	@DisplayName("测试简单断言")
    void testSimpleAssertions(){
        int addition = addition(3, 2);
        assertEquals(5,addition);
    }

    int addition(int i,int j){
        return i+j;
    }
复制代码

这是我们断言机制正确运行

注意哦,我们修改了一个数,我们就可以看到我们的正确结果和我们的测试结果有哪里不同,我们也可以自定义我们的错误提示信息

刚刚的这个函数有用来判断我们的返回的值是否相等,assertSame方法用来判断我们的对象是否相同

如果前面断言失败,那么后面的程序都不会执行

组合断言

就是我们判定,只有全部的断言都成功,我们的才算成功,只要有一个断言失败,就全部失败,使用assertAll

	@Test
    @DisplayName("组合断言")
    void all(){
        assertAll("test",
                ()->assertTrue(true),
                ()->assertEquals(1,1));
    }
复制代码

我们的组合断言要是写错误信息的话,要在单个断言中写出

异常断言

这可能就比较诡异了,我们要有错误才能正常运行,没错误就运行不了,我们写了一个数学运算错误,使用异常断言,

    @Test
    @DisplayName("异常断言")
    void testException(){
        assertThrows(ArithmeticException.class,()->{
            int i=0/0;
        },"10/0正常?");
    }
复制代码

但是他没有报错,运算正确时确报错了

快速失败

如果突然不想测了怎么办,那就不测了啊,使用快速失败,直接导致测试失败,其实它的用法并不是这样的,一旦我们出现了这个结果,测下去也没有任何意义的时候,我们就可以使用快速失败

    @DisplayName("快速失败")
    void testFail(){
        if(2==2){
            fail("测试失败");
        }
    }
复制代码

おすすめ

転載: juejin.im/post/7034852667146895367