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:
@Testmarkiert Tests,@DisplayNamegibt ihnen Namen@BeforeEach/@BeforeAllübernehmen das Setup- Arrange-Act-Assert hält Tests übersichtlich
@Nestedund@ParameterizedTestorganisieren 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
- Tests mit JUnit5 schreiben
- Assertions
- Mocking mit MockK
- Coroutine-Tests