Maison >Java >Javacommencer >Utilisation d'un cadre de test en boîte blanche (JUnit)

Utilisation d'un cadre de test en boîte blanche (JUnit)

**
**original
2021-11-29 09:33:243592parcourir

Framework Junit :

Junit est un framework de tests unitaires Java open source.

Aujourd'hui, nous présenterons junit5. junit5 se compose de trois modules de sous-projets différents, dont Junit Platform, Junit Jupiter et Junit Vintage. Il prend en charge Java 8 et supérieur. L'éditeur que j'utilise ici est IntelliJ IDEA. Il vous suffit de vérifier le résultat final pour savoir si l'interface de méthode de l'ensemble du projet est fluide. Chaque cas de test unitaire est relativement indépendant, démarré par Junit et automatiquement appelé. Pas besoin d'ajouter des instructions d'appel supplémentaires.

Ajoutez, supprimez et bloquez des méthodes de test sans affecter les autres méthodes de test.

Junit est principalement utilisé pour les tests en boîte blanche. Les étapes des tests en boîte blanche sont les suivantes :

1. Étape de planification des tests : Développer le calendrier des tests en fonction des spécifications des exigences.

2. Étape de conception des tests : selon la fonction du code, les cas de test sont conçus manuellement pour effectuer des tests fonctionnels de base. Selon les instructions de programmation, la structure du logiciel est divisée et les cas de test sont conçus selon certaines méthodes standardisées.

3. Phase d'exécution du test : saisissez les cas de test et obtenez les résultats des tests.

4. Étape de résumé du test : Comparez les résultats du test avec les résultats attendus du code, analysez la cause de l'erreur, recherchez et résolvez l'erreur.

Ensuite, introduisons les annotations à l'intérieur :

@Test : Représente la méthode de test sans déclarer aucun attribut.

@ParameterizedTest : Indique que la méthode est une méthode de test. De plus, cette annotation peut également permettre d'exécuter une méthode de test plusieurs fois en utilisant différentes personnes.

@RepeatedTest : Cette annotation permet à la méthode de test de personnaliser le nombre d'exécutions répétées.

@TestFactory : indique qu'une méthode est basée sur une source de données de test dynamique basée sur les données.

@Displayname : déclarez un nom d'affichage personnalisé pour la classe de test ou la méthode de test.

@BeforeEach : indique que la méthode spécifiée est exécutée avant l'exécution de chaque méthode de test.

@AfterEach : indique que la méthode spécifiée sera exécutée après l'exécution de chaque méthode de test.

@BeforeAll : Exécutée avant toutes les méthodes de test de la classe actuelle, cette méthode peut contenir du code d'initialisation.

@AfterAll : Exécuté après toutes les méthodes de test de la classe actuelle.

@Disabled : indique qu'une classe ou une méthode de test n'est pas valide.

Assertion :

Échec : le test d'assertion a échoué.

AssertTrue/asserFalse : affirmer vrai ou faux.

AssertNull/assertNotNull : l'assertion est nulle ou non nulle.

assertEquals/assertNotEquals : Affirmez que deux valeurs ne sont pas égales.

AssertArrayEquals : affirme que tous les éléments du tableau sont identiques.

AssertSame/assertNotSame : affirme si deux objets sont identiques.

AssertThrows/assertDoesNotThrow : affirme si une exception est levée.

AssertAll : Affirmer que plusieurs conditions sont remplies ;

Ci-dessous, nous créons une classe et créons plusieurs méthodes :

package test;//包机制
import java.lang.reflect.Array;
public class MixedOperation {
    public int mixeOperation(int x,int y){
        return division((x+y),y);
    }
    public int division(int x,int y){
        int result=(x/y);
        return result;
    }
    public static void main(String[] args) {
      MixedOperation mixedOperation=new MixedOperation();
      System.out.println(mixedOperation.mixeOperation(5,1));
    }
}

Nous créons une classe appelée MixedOperation

package test;
import org.junit.jupiter.api.*;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
public class MixedOperationTest {
    private MixedOperation mixedOperation;
    @BeforeEach
    public void init(){
      mixedOperation=new MixedOperation();
    }
    @Test
    public void successTest(){
        System.out.println("run a test:x=4,y=2");
        int result=mixedOperation.mixeOperation(4,2);
        Assertions.assertEquals(3,result);
    }
   /* @DisplayName("失败")
    public void errorTest(){`
        System.out.println("run a test:x=4,y=0");
        ArithmeticException exception=new ArithmeticException(
                ArithmeticException.class -> {
            mixedOperation.mixeOperation(4, 0);
        }
        );
    }*/
    @Disabled("参数")
    @Test
    @DisplayName("参数")
    @ParameterizedTest
    @CsvSource({"6,3,3","5,2,3","6,2,4"})
    public void caTest(int x,int y,int excepted){
        System.out.println("run a test :x="+x+"y="+y);
        System.out.println(excepted);
        int t= mixedOperation.mixeOperation(x,y);
        Assertions.assertEquals(excepted,t);
    }
    @Disabled
    @Test
    public void  Next(){
       System.out.println("抛出一个异常");
       System.out.println(Assertions.assertThrows(IllegalArgumentException.class, () ->mixedOperation.mixeOperation(2,0)));
    }
    @Disabled
    @Test
    void error(){
        Assertions.assertThrows(Exception.class,()->{Assertions.assertEquals(1,0);});
    }
    @Test
    void sure(){
        int result=mixedOperation.mixeOperation(4,2);
        Assertions.assertTrue(3==result);//断言相等
    }
}

C'est ici que nous créons un test appelé MixedOperationTest Class ;

recommandations : "tutoriel vidéo Java"

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:
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