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)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部