junit 5 内置的断言可以分成如下几个类别:
1.简单断言用来对单个值进行简单的验证。如:
方法说明
assertequals 判断两个对象或两个原始类型是否相等 
assertnotequals 判断两个对象或两个原始类型是否不相等 
assertsame 判断两个对象引用是否指向同一个对象 
assertnotsame 判断两个对象引用是否指向不同的对象 
asserttrue 判断给定的布尔值是否为 true 
assertfalse 判断给定的布尔值是否为 false 
assertnull 判断给定的对象引用是否为 null 
assertnotnull 判断给定的对象引用是否不为 null
jtest5
package com.limi.springboottest2;import org.junit.jupiter.api.*;import org.springframework.boot.test.context.springboottest;import static org.junit.jupiter.api.assertions.*;@springboottestpublic class jtest5 {    @test    public void simple() {        assertequals(3, 1 + 2, "simple math");        system.out.println(1);        assertnotequals(3, 1 + 1);        system.out.println(2);        assertnotsame(new object(), new object());        system.out.println(3);        object obj = new object();        assertsame(obj, obj);        system.out.println(4);        assertfalse(3 > 2);        system.out.println(5);        asserttrue(1 < 2);        system.out.println(6);        assertnull(null);        system.out.println(7);        assertnotnull(new object());        system.out.println(8);    }}
断言判断为假, 程序抛出异常后立即终止运行, 余下的代码都不会被执行.
2.数组断言通过 assertarrayequals 方法来判断两个对象或原始类型的数组是否相等。
	//不相等抛出异常    @test    public void array() {        assertarrayequals(new int[]{1, 2}, new int[] {1, 2, 3});    }
3.组合断言assertall()方法接受多个 org.junit.jupiter.api.executable 函数式接口的实例作为要验证的断言,可以通过 lambda 表达式很容易的提供这些断言。
	//除非填写的断言都为真, 否则抛出异常    @test    public void all() {        assertall("math",                () -> assertequals(2, 1 + 1),                () -> asserttrue(1 > 5),                () -> assertnotnull(null)        );    }
注意看, 第二个断言为假,仍然会执行第三个断言, 也就是说assertall()方法b内填写的断言都会被执行判断
4.异常断言在junit4时期,想要测试方法的异常情况时,需要用@rule注解的expectedexception变量还是比较麻烦的。而junit5提供了一种新的断言方式assertions.assertthrows(),配合函数式编程就可以进行使用。
    @test    public void exceptiontest() {        arithmeticexception exception = assertions.assertthrows(                //当没有异常时, 扔出断言异常                arithmeticexception.class, () -> system.out.println(5/ 2));    }
5.超时断言junit5还提供了assertions.asserttimeout()为测试方法设置了超时时间。
    @test@displayname("超时测试")public void timeouttest() {        //如果测试方法执行时间超过设置的时间将会抛出异常            assertions.asserttimeout(duration.ofmillis(1000), () -> thread.sleep(5000));    }
6.快速失败通过 fail 方法直接使得测试失败, 该断言后续代码不会执行
    @test    public void shouldfail() {        system.out.println("123456");        fail("this should fail");        system.out.println("888888");    }
以上就是springboot断言机制的原理是什么的详细内容。
   
 
   