0Pricing
Kotlin Academy · Lektion

Tests mit JUnit5 schreiben

Strukturieren Sie Tests

Tests mit JUnit5 schreiben ist eine kostenlose Kotlin Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Kotlin Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist JUnit5?

JUnit5 (JUnit Jupiter) ist das Standard-Testframework für die JVM und Kotlin. Es stellt Annotationen bereit, mit denen Testcode markiert und strukturiert wird.

  • Tests befinden sich in src/test/kotlin
  • Jeder Test ist eine Funktion
  • Der Runner führt sie aus und meldet die Ergebnisse

Die Abhängigkeit hinzufügen

Fügen Sie JUnit Jupiter zu Ihrer Testkonfiguration hinzu und aktivieren Sie die JUnit-Plattform.

dependencies {
    testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
}

tasks.test {
    useJUnitPlatform()
}

Ihr erster Test

Annotieren Sie eine Funktion mit @Test. Ein Test überprüft eine Annahme über Ihren Code.

import org.junit.jupiter.api.Test
import org.junit.jupiter.api.Assertions.assertEquals

class MathTest {
    @Test
    fun addsTwoNumbers() {
        assertEquals(4, 2 + 2)
    }
}

Beschreibende Testnamen

Verwenden Sie @DisplayName für lesbare Testberichte, ohne lange Funktionsnamen zu benötigen.

import org.junit.jupiter.api.Test
import org.junit.jupiter.api.DisplayName

class OrderTest {
    @Test
    @DisplayName("total includes tax")
    fun totalWithTax() {
        // ...
    }
}

Setup mit @BeforeEach

@BeforeEach wird vor jedem Test ausgeführt und eignet sich ideal für frische Test-Fixtures. @AfterEach wird nach jedem Test zur Bereinigung ausgeführt.

import org.junit.jupiter.api.BeforeEach

class CartTest {
    private lateinit var cart: MutableList<String>
    @BeforeEach
    fun setUp() {
        cart = mutableListOf()
    }
}

Setup auf Klassenebene

@BeforeAll und @AfterAll werden einmal für die gesamte Klasse ausgeführt. In Kotlin benötigen sie ein Companion-Objekt mit @JvmStatic (oder einen klassenbezogenen Lifecycle).

import org.junit.jupiter.api.BeforeAll

class DbTest {
    companion object {
        @BeforeAll
        @JvmStatic
        fun connect() {
            // open shared connection
        }
    }
}

Arrange-Act-Assert

Strukturieren Sie jeden Test in drei klaren Phasen:

  • Arrange — Eingaben und Zustand vorbereiten
  • Act — den zu testenden Code aufrufen
  • Assert — das Ergebnis überprüfen

So bleiben Tests lesbar und fokussiert.

Verschachtelte Tests

@Nested gruppiert zusammengehörige Tests und erzeugt einen baumförmigen Bericht, der das Verhalten dokumentiert.

import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test

class StackTest {
    @Nested
    inner class WhenEmpty {
        @Test fun isEmpty() { /* ... */ }
    }
}

Parametrisierte Tests

Führen Sie denselben Test mit mehreren Eingaben aus, indem Sie @ParameterizedTest und eine Wertequelle verwenden.

import org.junit.jupiter.params.ParameterizedTest
import org.junit.jupiter.params.provider.ValueSource
import org.junit.jupiter.api.Assertions.assertTrue

class NumberTest {
    @ParameterizedTest
    @ValueSource(ints = [2, 4, 6])
    fun isEven(n: Int) {
        assertTrue(n % 2 == 0)
    }
}

Deaktivieren und taggen

Überspringen Sie einen Test vorübergehend mit @Disabled und gruppieren Sie Tests mit @Tag, damit Sie sie in CI-Läufen ein- oder ausschließen können.

import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.Tag
import org.junit.jupiter.api.Test

class FlakyTest {
    @Test
    @Disabled("fix later")
    @Tag("slow")
    fun pending() { }
}

Ein eigenständiges Beispiel

Hier sehen Sie eine einfache reine Kotlin-Funktion und die Idee, wie man sie testet (der Test selbst läuft unter JUnit).

fun add(a: Int, b: Int): Int = a + b

fun main() {
    val result = add(2, 3)
    println(if (result == 5) "PASS" else "FAIL")
}

Kurze Überprüfung

Sie benötigen vor jeder einzelnen Testmethode eine neue, leere Liste. Welche Annotation passt?

Zusammenfassung

Sie können JUnit5-Tests strukturieren:

  • @Test markiert Tests, @DisplayName gibt ihnen Namen
  • @BeforeEach / @BeforeAll übernehmen das Setup
  • Arrange-Act-Assert hält Tests übersichtlich
  • @Nested und @ParameterizedTest organisieren und skalieren Tests

Als Nächstes: Assertions.

Häufig gestellte Fragen

Ist die Lektion „Tests mit JUnit5 schreiben“ kostenlos?

Ja — der vollständige Text von „Tests mit JUnit5 schreiben“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Tests mit JUnit5 schreiben“?

Strukturieren Sie Tests Du übst Kotlin Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Kotlin Academy zu starten?

Keine Vorkenntnisse erforderlich. Kotlin Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Tests mit JUnit5 schreiben“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Kotlin Academy-Lektion Code schreiben und ausführen?

Ja. Jede Kotlin Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Tests mit JUnit5 schreiben
  2. Assertions
  3. Mocking mit MockK
  4. Coroutine-Tests
← Zurück zu Kotlin Academy