首頁  >  文章  >  Java  >  SpringBoot斷言機制的原理是什麼

SpringBoot斷言機制的原理是什麼

王林
王林轉載
2023-05-14 12:28:111433瀏覽

JUnit 5 內建的斷言可以分成以下幾個類別:

1.簡單斷言

#用來對單一值進行簡單的驗證。如:

assertNotEqualsassertSame#assertNotSame##判斷兩個物件引用是否指向不同的對象assertTrue判斷給定的布林值是否為true
方法 說明
assertEquals
##判斷兩個物件或兩個原始型別是否相等
判斷兩個物件或兩個原始型別是否不相等
判斷兩個物件參考是否指向同一個物件

assertFalse

判斷給定的布林值是否為falseSpringBoot斷言機制的原理是什麼

assertNull

判斷給定的物件參考是否為null

SpringBoot斷言機制的原理是什麼

assertNotNull

判斷給定的物件參考是否不為null

SpringBoot斷言機制的原理是什麼

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

斷言判斷為假, 程式拋出例外狀況後立即終止執行,剩下的程式碼都不會被執行.

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));
    }
############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斷言機制的原理是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除