Maison  >  Article  >  Java  >  Quel est le principe du mécanisme d’assertion SpringBoot ?

Quel est le principe du mécanisme d’assertion SpringBoot ?

王林
王林avant
2023-05-14 12:28:111433parcourir

Les assertions intégrées de

JUnit 5 peuvent être divisées dans les catégories suivantes :

1 Les assertions simples

sont utilisées pour effectuer une vérification simple d'une seule valeur. Tels que :

Méthode Description
assertEquals Juge si deux objets ou deux types primitifs sont égaux
assertNotEquals Juge si deux objets ou deux types primitifs les types ne sont pas égaux
assertSame Détermine si deux références d'objet pointent vers le même objet
assertNotSame Détermine si deux références d'objet pointent vers des objets différents
assertTrue Détermine si la valeur booléenne donnée est vraie
assertFalse Détermine si la valeur booléenne donnée est fausse
assertNull Détermine si la référence d'objet donnée est nulle
assertNotNull Détermine si la référence d'objet donnée n'est pas nulle

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

Si l'assertion est jugée fausse, le programme se terminera immédiatement après avoir lancé une exception et le code restant ne sera pas exécuté.

Quel est le principe du mécanisme d’assertion SpringBoot ?

2 Assertion Array

Utilisez la méthode assertArrayEquals pour juger deux objets Ou. si les tableaux de types primitifs sont égaux.

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

Quel est le principe du mécanisme d’assertion SpringBoot ?

3. La méthode assertions combinées

assertAll() accepte plusieurs instances de l'interface fonctionnelle org.junit.jupiter.api.Executable comme assertions à vérifier. Ces assertions peuvent être facilement fournies via des expressions lambda.

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

Quel est le principe du mécanisme d’assertion SpringBoot ?

Notez que si la deuxième assertion est fausse, la troisième assertion sera quand même exécutée, c'est-à-dire que les assertions remplies dans la méthode assertAll() b seront exécutées et jugées

4. dans JUnit4 Durant cette période, lorsque l'on souhaite tester la situation anormale d'une méthode, il est toujours gênant d'utiliser la variable ExpectedException annotée avec @Rule. JUnit5 fournit une nouvelle méthode d'assertion, Assertions.assertThrows(), qui peut être utilisée avec la programmation fonctionnelle.

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

Quel est le principe du mécanisme d’assertion SpringBoot ?5. Timeout assertion

JUnit5 fournit également Assertions.assertTimeout() pour définir un délai d'attente pour la méthode de test.

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

Quel est le principe du mécanisme d’assertion SpringBoot ?6. Un échec rapide

fait directement échouer le test via la méthode fail, qui affirme que le code suivant ne sera pas exécuté

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer