Heim  >  Artikel  >  Java  >  Was ist das Prinzip des SpringBoot-Behauptungsmechanismus?

Was ist das Prinzip des SpringBoot-Behauptungsmechanismus?

王林
王林nach vorne
2023-05-14 12:28:111432Durchsuche

Die integrierten Behauptungen von

JUnit 5 können in die folgenden Kategorien unterteilt werden:

1 Einfache Behauptungen

werden verwendet, um eine einfache Überprüfung eines einzelnen Werts durchzuführen. Zum Beispiel:

Methode Beschreibung
assertEquals Bestimmen Sie, ob zwei Objekte oder zwei primitive Typen gleich sind.
assertNotEquals Bestimmen Sie, ob zwei Objekte oder zwei primitive Typen gleich sind Typen sind nicht gleich
assertSame Bestimmen Sie, ob zwei Objektreferenzen auf dasselbe Objekt zeigen.
assertNotSame Bestimmen Sie, ob zwei Objektreferenzen auf verschiedene Objekte zeigen.
assertTrue Bestimmen Sie, ob der angegebene boolesche Wert wahr ist
assertFalse Bestimmen Sie, ob der angegebene boolesche Wert falsch ist
assertNull Bestimmen Sie, ob die angegebene Objektreferenz null ist
assertNotNull Bestimmen Sie, ob die angegebene Objektreferenz nicht null ist
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);
    }
}

Wenn die Behauptung als falsch beurteilt wird, wird das Programm sofort nach dem Auslösen einer Ausnahme beendet und der verbleibende Code wird nicht ausgeführt.

Was ist das Prinzip des SpringBoot-Behauptungsmechanismus?

2. Array-Behauptung

Verwenden Sie die AssertArrayEquals-Methode, um zwei Objekte zu beurteilen ob Arrays primitiver Typen gleich sind.

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

Was ist das Prinzip des SpringBoot-Behauptungsmechanismus?

3. Die Methode „Combined Assertions“ akzeptiert mehrere Instanzen der Funktionsschnittstelle org.junit.jupiter.api.Executable als zu überprüfende Behauptungen. Diese Behauptungen können einfach über Lambda-Ausdrücke bereitgestellt werden.

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

Beachten Sie, dass die dritte Behauptung trotzdem ausgeführt wird, wenn die zweite Behauptung falsch ist, was bedeutet, dass die in der AssertAll()-Methode b ausgefüllten Behauptungen ausgeführt und beurteilt werdenWas ist das Prinzip des SpringBoot-Behauptungsmechanismus?

4. Ausnahmezusicherung

in JUnit4 Wenn Sie die abnormale Situation einer Methode testen möchten, ist es immer noch problematisch, die mit @Rule annotierte ExpectedException-Variable zu verwenden. JUnit5 bietet eine neue Assertionsmethode, Assertions.assertThrows(), die mit funktionaler Programmierung verwendet werden kann.

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

5. Timeout-AssertionWas ist das Prinzip des SpringBoot-Behauptungsmechanismus?

JUnit5 bietet auch Assertions.assertTimeout(), um ein Timeout für die Testmethode festzulegen.

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

6. Ein schneller FehlerWas ist das Prinzip des SpringBoot-Behauptungsmechanismus?

schlägt den Test direkt durch die Fail-Methode fehl, die sicherstellt, dass nachfolgender Code nicht ausgeführt wird

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

Das obige ist der detaillierte Inhalt vonWas ist das Prinzip des SpringBoot-Behauptungsmechanismus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen