suchen
HeimJavaJavaErste SchritteVerwendung des White-Box-Test-Frameworks (JUnit)

Junit-Framework:

Junit ist ein Open-Source-Java-Unit-Test-Framework.

Heute stellen wir junit5 vor. junit5 besteht aus drei verschiedenen Teilprojektmodulen, darunter Junit Platform, Junit Jupiter und Junit Vintage. Es unterstützt Java 8 und höher. Der Editor, den ich hier verwende, ist IntelliJ IDEA. Sie müssen nur das Endergebnis überprüfen, um festzustellen, ob die Methodenschnittstelle des gesamten Projekts reibungslos funktioniert. Jeder Unit-Testfall ist relativ unabhängig, wird von Junit gestartet und automatisch aufgerufen. Es müssen keine zusätzlichen Aufrufanweisungen hinzugefügt werden.

Testmethoden hinzufügen, löschen und blockieren, ohne andere Testmethoden zu beeinträchtigen.

Junit wird hauptsächlich für White-Box-Tests verwendet:

1 Testplanungsphase: Entwickeln Sie den Testplan gemäß der Anforderungsspezifikation.

2. Testentwurfsphase: Entsprechend der Funktion des Codes werden Testfälle manuell entworfen, um grundlegende Funktionstests durchzuführen. Gemäß der Programmieranleitung wird die Softwarestruktur aufgeteilt und Testfälle nach bestimmten standardisierten Methoden entworfen.

3. Testausführungsphase: Testfälle eingeben und Testergebnisse erhalten.

4. Phase der Testzusammenfassung: Vergleichen Sie die Testergebnisse mit den erwarteten Ergebnissen des Codes, analysieren Sie die Fehlerursache, finden und beheben Sie den Fehler.

Als nächstes stellen wir die darin enthaltenen Anmerkungen vor:

@Test: Stellt die Testmethode dar, ohne irgendwelche Attribute zu deklarieren.

@ParameterizedTest: Zeigt an, dass es sich bei der Methode um eine Testmethode handelt. Darüber hinaus kann diese Annotation auch die mehrfache Ausführung einer Testmethode mit verschiedenen Personen ermöglichen.

@RepeatedTest: Diese Annotation ermöglicht es der Testmethode, die Anzahl der wiederholten Läufe anzupassen.

@TestFactory: Zeigt an, dass eine Methode auf einer datengesteuerten dynamischen Testdatenquelle basiert.

@Displayname: Deklarieren Sie einen benutzerdefinierten Anzeigenamen für die Testklasse oder Testmethode.

@BeforeEach: Gibt an, dass die angegebene Methode ausgeführt wird, bevor jede Testmethode ausgeführt wird.

@AfterEach: Gibt an, dass die angegebene Methode ausgeführt wird, nachdem jede Testmethode ausgeführt wurde.

@BeforeAll: Diese Methode wird vor allen Testmethoden der aktuellen Klasse ausgeführt und kann Initialisierungscode enthalten.

@AfterAll: Wird nach allen Testmethoden der aktuellen Klasse ausgeführt.

@Disabled: Zeigt an, dass eine Testklasse oder -methode ungültig ist.

Behauptung:

Fehlgeschlagen: Behauptungstest fehlgeschlagen.

AssertTrue/asserFalse: Behauptet wahr oder falsch.

AssertNull/assertNotNull: Assert ist null oder nicht null.

assertEquals/assertNotEquals: Behaupten, dass zwei Werte ungleich sind.

AssertArrayEquals: Stellt sicher, dass alle Array-Elemente gleich sind.

AssertSame/assertNotSame: Bestätigt, ob zwei Objekte gleich sind.

AssertThrows/assertDoesNotThrow: Bestätigen, ob eine Ausnahme ausgelöst wird.

AssertAll: Stellen Sie sicher, dass mehrere Bedingungen erfüllt sind.

Unten erstellen wir eine Klasse und mehrere Methoden:

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

Wir erstellen eine Klasse namens 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);//断言相等
    }
}

Hier erstellen wir einen Test namens MixedOperationTest Class;

Verwandte Empfehlungen: „Java-Video-Tutorial

Das obige ist der detaillierte Inhalt vonVerwendung des White-Box-Test-Frameworks (JUnit). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool