初步了解断言机制 断言机制 组合断言 异常断言 快速失败

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

断言机制

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

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

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

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

1
2
3
4
5
6
7
8
9
csharp复制代码 	@DisplayName("测试简单断言")
void testSimpleAssertions(){
int addition = addition(3, 2);
assertEquals(5,addition);
}

int addition(int i,int j){
return i+j;
}

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

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

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

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

组合断言

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

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

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

异常断言

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

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

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

快速失败

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

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

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%