Rumah  >  Artikel  >  Java  >  Apakah prinsip mekanisme penegasan SpringBoot?

Apakah prinsip mekanisme penegasan SpringBoot?

王林
王林ke hadapan
2023-05-14 12:28:111481semak imbas

Penegasan terbina dalam JUnit 5 boleh dibahagikan kepada kategori berikut:

1 Penegasan mudah

digunakan untuk melakukan pengesahan mudah bagi satu nilai. Contohnya:

方法 说明
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);
    }
}

Jika pernyataan itu dinilai palsu, atur cara akan ditamatkan serta-merta selepas membuang pengecualian dan kod yang tinggal tidak akan dilaksanakan.

Apakah prinsip mekanisme penegasan SpringBoot?

2. Penegasan tatasusunan

Gunakan kaedah assertArrayEquals untuk menentukan sama ada dua objek atau tatasusunan jenis primitif adalah sama.

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

Apakah prinsip mekanisme penegasan SpringBoot?

3. Penegasan gabungan

kaedah assertAll() menerima berbilang contoh antara muka fungsian org.junit.jupiter.api.Executable untuk disahkan Penegasan boleh disediakan dengan mudah melalui ungkapan lambda.

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

Apakah prinsip mekanisme penegasan SpringBoot?

Perhatikan bahawa jika penegasan kedua adalah palsu, penegasan ketiga masih akan dilaksanakan, yang bermaksud bahawa penegasan yang diisi dalam kaedah assertAll() b akan dilaksanakan

4. Penegasan Pengecualian

Dalam era JUnit 4, apabila anda ingin menguji pengecualian kaedah, masih menyusahkan untuk menggunakan pembolehubah ExpectedException yang dianotasi dengan @Rule. JUnit5 menyediakan kaedah penegasan baharu, Assertions.assertThrows(), yang boleh digunakan dengan pengaturcaraan berfungsi.

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

Apakah prinsip mekanisme penegasan SpringBoot?

5. Penegasan tamat masa

JUnit5 juga menyediakan Assertions.assertTimeout() untuk menetapkan tamat masa bagi kaedah ujian.

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

Apakah prinsip mekanisme penegasan SpringBoot?

6. Kegagalan pantas

Gagal secara langsung ujian melalui kaedah gagal, dan kod penegasan ini tidak akan dilaksanakan

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

Apakah prinsip mekanisme penegasan SpringBoot?

Atas ialah kandungan terperinci Apakah prinsip mekanisme penegasan SpringBoot?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam