这是我参与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("测试失败");
}
}
复制代码