SpringBoot断言机制的原理是什么

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);    }}

断言判断为假, 程序抛出异常后立即终止运行, 余下的代码都不会被执行.

SpringBoot断言机制的原理是什么

2.数组断言

通过 assertArrayEquals 方法来判断两个对象或原始类型的数组是否相等。

	//不相等抛出异常    @Test    public void array() {        assertArrayEquals(new int[]{1, 2}, new int[] {1, 2, 3});    }

SpringBoot断言机制的原理是什么

3.组合断言

assertAll()方法接受多个 org.junit.jupiter.api.Executable 函数式接口的实例作为要验证的断言,可以通过 lambda 表达式很容易的提供这些断言。

	//除非填写的断言都为真, 否则抛出异常    @Test    public void all() {        assertAll("Math",                () -> assertEquals(2, 1 + 1),                () -> assertTrue(1 > 5),                () -> assertNotNull(null)        );    }

SpringBoot断言机制的原理是什么

注意看, 第二个断言为假,仍然会执行第三个断言, 也就是说assertAll()方法b内填写的断言都会被执行判断

4.异常断言

在JUnit4时期,想要测试方法的异常情况时,需要用@Rule注解的ExpectedException变量还是比较麻烦的。而JUnit5提供了一种新的断言方式Assertions.assertThrows(),配合函数式编程就可以进行使用。

    @Test    public void exceptionTest() {        ArithmeticException exception = Assertions.assertThrows(                //当没有异常时, 扔出断言异常                ArithmeticException.class, () -> System.out.println(5/ 2));    }

SpringBoot断言机制的原理是什么

5.超时断言

JUnit5还提供了Assertions.assertTimeout()为测试方法设置了超时时间。

    @Test@DisplayName("超时测试")public void timeoutTest() {        //如果测试方法执行时间超过设置的时间将会抛出异常            Assertions.assertTimeout(Duration.ofMillis(1000), () -> Thread.sleep(5000));    }

SpringBoot断言机制的原理是什么

6.快速失败

通过 fail 方法直接使得测试失败, 该断言后续代码不会执行

    @Test    public void shouldFail() {        System.out.println("123456");        fail("This should fail");        System.out.println("888888");    }

SpringBoot断言机制的原理是什么

关于“SpringBoot断言机制原理什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

文章标题:SpringBoot断言机制的原理是什么,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/25637

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云
上一篇 2022年9月15日 下午11:37
下一篇 2022年9月15日 下午11:38

相关推荐

  • 2024年9款优质CRM系统全方位解析

    文章介绍的工具有:纷享销客、Zoho CRM、八百客、红圈通、简道云、简信CRM、Salesforce、HubSpot CRM、Apptivo。 在选择合适的CRM系统时,许多企业面临着功能繁多、选择困难的痛点。对于中小企业来说,找到一个既能提高客户关系管理效率,又能适应业务扩展的CRM系统尤为重要…

    2024年7月25日
    1600
  • 数据库权限关系图表是什么

    数据库权限关系图表是一种以图表形式展示数据库权限分配和管理的工具。它可以有效地帮助我们理解和管理数据库中的各种权限关系。数据库权限关系图表主要包含以下几个部分:数据对象、用户(或用户组)、权限类型、权限级别、权限状态等。其中,数据对象是权限关系图表中的核心元素,它代表了数据库中的各种数据资源,如表、…

    2024年7月22日
    200
  • 诚信数据库是什么意思

    诚信数据库是一种收集、存储和管理个人或组织诚信信息的系统。它是一种用于评估和管理个人或组织行为的工具,通常由政府、商业组织或者非营利组织进行运营。诚信数据库的主要功能包括:1、评估个人或组织的诚信状况;2、提供决策支持;3、预防和控制风险;4、促进社会信用体系建设。 在这四大功能中,评估个人或组织的…

    2024年7月22日
    400
  • 数据库期末关系代数是什么

    关系代数是一种对关系进行操作的代数系统,是关系模型的数学基础,主要用于从关系数据库中检索数据。其操作包括选择、投影、并集、差集、笛卡尔积、连接、除法等。其中,选择操作是对关系中的元组进行筛选,只保留满足某一条件的元组;投影操作则是从关系中选择出一部分属性构造一个新的关系。 一、选择操作 选择操作是关…

    2024年7月22日
    700
  • mysql建立数据库用什么命令

    在MySQL中,我们使用"CREATE DATABASE"命令来创建数据库。这是一个非常简单且基础的命令,其语法为:CREATE DATABASE 数据库名。在这个命令中,“CREATE DATABASE”是固定的,而“数据库名”则是你要创建的数据库的名称,可以自己设定。例如,如…

    2024年7月22日
    500
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部