SpringBoot详细讲解断言机制原理

目录

1.简单断言

2.数组断言

3.组合断言

4.异常断言

5.超时断言

6.快速失败

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.*; @SpringBootTest public 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详细讲解断言机制原理的文章就介绍到这了,更多相关SpringBoot断言机制内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    公共CPU接口类型的详细描述

    公共CPU接口类型的详细描述,,我们知道CPU是电脑的大脑, CPU的处理速度直接决定电脑的性能, 那你知道CPU发展到现在, 都那些CPU接口类型吗.

    主板类型百科全书(基于芯片分类)

    主板类型百科全书(基于芯片分类),,电脑维修基础之主板型号熟悉,主板芯片型号区分,涵盖nVIDIA系列intel系列AMD系列主板型号,主板型号大全内容较

    C上的引导检查文件系统:文件的类型

    C上的引导检查文件系统:文件的类型,,故障现象:系统检查启动检查文件 每一次你启动一台计算机,都会是这样的。 在d上检查文件系统: 该文件

    asp中文图片验证码的实现代码

    asp中文图片验证码的实现代码,,这个代码是在别人的增加对汉字的基础功能,谢谢你,谢谢轻烟。 以前的图片验证代码很容易破解,所以在目前的基础

    电脑硬盘接|电脑硬盘接口类型怎么看

    电脑硬盘接|电脑硬盘接口类型怎么看,,电脑硬盘接口类型怎么看方法如下:1、在计算机上点击右键,选择设备管理器;2、点开磁盘驱动器就可以看到

    Python之可迭代对象、迭代器、生成器

    Python之可迭代对象、迭代器、生成器,迭代,生成器,一、概念描述可迭代对象就是可以迭代的对象,我们可以通过内置的iter函数获取其迭代器,可

    应用程序对象

    应用程序对象,,应用程序对象是一个应用程序级对象,用于在所有用户之间共享信息,并且在Web应用程序运行期间可以保存数据。 应用的性质: 方法