Maison > Java > javaDidacticiel > Quel est le principe du mécanisme d'assertion SpringBoot ?

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

王林
Libérer: 2023-05-14 12:28:11
avant
1501 Les gens l'ont consulté

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);
    }
}
Copier après la connexion

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 dassertion 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});
    }
Copier après la connexion

Quel est le principe du mécanisme dassertion 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)
        );
    }
Copier après la connexion

Quel est le principe du mécanisme dassertion 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));
    }
Copier après la connexion

Quel est le principe du mécanisme dassertion 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));
    }
Copier après la connexion

Quel est le principe du mécanisme dassertion 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");
    }
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal