Heim > Java > javaLernprogramm > Erweitertes Testen mit JUnit 5

Erweitertes Testen mit JUnit 5

PHPz
Freigeben: 2024-08-07 01:42:42
Original
1238 Leute haben es durchsucht

Advanced Testing with JUnit 5

JUnit. Es führt mehrere leistungsstarke Funktionen und Verbesserungen ein, die das Schreiben, Organisieren und Ausführen von Tests erleichtern. Wenn Sie diese erweiterten Funktionen verstehen, können Sie robustere und wartbarere Testsuiten erstellen.

Was ist JUnit 5?

JUnit 5 ist ein großes Update des JUnit-Frameworks, das flexibler und modularer gestaltet ist. Es besteht aus drei Hauptkomponenten:

  1. JUnit-Plattform: Die Grundlage für die Einführung von Test-Frameworks auf der JVM.
  2. JUnit Jupiter: Das neue Programmiermodell und Erweiterungsmodell zum Schreiben von Tests.
  3. JUnit Vintage: Bietet Unterstützung für die Ausführung von JUnit 3- und JUnit 4-Tests auf der JUnit 5-Plattform.

Hauptmerkmale von JUnit 5

  1. Anzeigenamen: Kommentieren Sie Tests zur besseren Lesbarkeit mit benutzerdefinierten Anzeigenamen.
  2. Verschachtelte Tests: Organisieren Sie Tests hierarchisch, um die Struktur des getesteten Codes widerzuspiegeln.
  3. Dynamische Tests: Erstellen Sie Tests dynamisch zur Laufzeit.
  4. Tagging und Filterung: Gruppieren Sie Tests mithilfe von Tags und filtern Sie sie während der Ausführung.
  5. Behauptungen und Annahmen: Verbesserte Unterstützung für Behauptungen und Annahmen zur Steuerung des Testausführungsablaufs.

Beispiel: Verwendung erweiterter Funktionen von JUnit 5

  1. Benutzerdefinierte Anzeigenamen:
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

@DisplayName("Calculator Tests")
class CalculatorTest {

    @Test
    @DisplayName("Addition Test")
    void testAddition() {
        assertEquals(2, 1 + 1, "1 + 1 should equal 2");
    }
}
Nach dem Login kopieren
  1. Verschachtelte Tests:
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

class OuterTest {

    @Nested
    class InnerTest {
        @Test
        void innerTest() {
            // Test logic here
        }
    }
}
Nach dem Login kopieren
  1. Dynamische Tests:
import org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.TestFactory;
import java.util.stream.Stream;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.DynamicTest.dynamicTest;

class DynamicTestsDemo {

    @TestFactory
    Stream<DynamicTest> dynamicTests() {
        return Stream.of(1, 2, 3, 4, 5)
                .map(number -> dynamicTest("Test number " + number, () -> assertTrue(number > 0)));
    }
}
Nach dem Login kopieren
  1. Tagging und Filterung:
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;

class TaggingTest {

    @Test
    @Tag("fast")
    void fastTest() {
        // Fast test logic here
    }

    @Test
    @Tag("slow")
    void slowTest() {
        // Slow test logic here
    }
}
Nach dem Login kopieren
  1. Behauptungen und Annahmen:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assumptions.assumeTrue;

class AssertionsDemo {

    @Test
    void testException() {
        assertThrows(IllegalArgumentException.class, () -> {
            throw new IllegalArgumentException("Exception message");
        });
    }

    @Test
    void testAssumption() {
        assumeTrue(5 > 1);
        // Test logic here
    }
}
Nach dem Login kopieren

Abschluss

JUnit 5 bietet eine Fülle neuer Funktionen und Verbesserungen, die es zu einem leistungsstarken Tool für moderne Java-Tests machen. Durch die Nutzung dieser erweiterten Funktionen können Sie besser organisierte, flexiblere und wartbarere Testsuiten erstellen und so sicherstellen, dass Ihr Code robust und zuverlässig ist.

Das obige ist der detaillierte Inhalt vonErweitertes Testen mit JUnit 5. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage