Tests schrijven met JUnit5
Structureer tests
Tests schrijven met JUnit5 is een gratis Kotlin Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Kotlin Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Kotlin Academy bevat in totaal 4 lessen.
Wat is JUnit5?
JUnit5 (JUnit Jupiter) is het standaardtestframework voor de JVM en Kotlin. Het biedt annotaties om testcode te markeren en te structureren.
- Tests staan in
src/test/kotlin - Elke test is een functie
- De testrunner voert ze uit en rapporteert de resultaten
De afhankelijkheid toevoegen
Voeg JUnit Jupiter toe aan je testconfiguratie en activeer het JUnit-platform.
dependencies {
testImplementation("org.junit.jupiter:junit-jupiter:5.10.2")
}
tasks.test {
useJUnitPlatform()
}Je eerste test
Annotateer een functie met @Test. Een test controleert iets over je code.
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.Assertions.assertEquals
class MathTest {
@Test
fun addsTwoNumbers() {
assertEquals(4, 2 + 2)
}
}Beschrijvende testnamen
Gebruik @DisplayName voor leesbare testrapporten zonder lange functienamen.
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.DisplayName
class OrderTest {
@Test
@DisplayName("total includes tax")
fun totalWithTax() {
// ...
}
}Instellen met @BeforeEach
@BeforeEach wordt vóór elke test uitgevoerd en is ideaal voor verse testgegevens. @AfterEach wordt na elke test uitgevoerd om op te ruimen.
import org.junit.jupiter.api.BeforeEach
class CartTest {
private lateinit var cart: MutableList<String>
@BeforeEach
fun setUp() {
cart = mutableListOf()
}
}Instellen op klasseniveau
@BeforeAll en @AfterAll worden één keer voor de hele klasse uitgevoerd. In Kotlin hebben ze een companion object met @JvmStatic nodig, of een levenscyclus per klasse.
import org.junit.jupiter.api.BeforeAll
class DbTest {
companion object {
@BeforeAll
@JvmStatic
fun connect() {
// open shared connection
}
}
}Ordenen-uitvoeren-controleren
Structureer elke test in drie duidelijke fasen:
- Ordenen — stel invoer en toestand in
- Uitvoeren — roep de te testen code aan
- Controleren — controleer het resultaat
Zo blijven tests leesbaar en doelgericht.
Geneste tests
@Nested groepeert gerelateerde tests en produceert een boomvormig rapport dat het gedrag documenteert.
import org.junit.jupiter.api.Nested
import org.junit.jupiter.api.Test
class StackTest {
@Nested
inner class WhenEmpty {
@Test fun isEmpty() { /* ... */ }
}
}Geparametriseerde tests
Voer dezelfde test uit met meerdere invoerwaarden met @ParameterizedTest en een waardebron.
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)
}
}Uitschakelen en labelen
Sla een test tijdelijk over met @Disabled en groepeer tests met @Tag, zodat je ze kunt opnemen in of uitsluiten van CI-uitvoeringen.
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() { }
}Een zelfstandig voorbeeld
Hier is een eenvoudige zuivere Kotlin-functie en het idee achter het testen ervan. De test zelf wordt uitgevoerd onder JUnit.
fun add(a: Int, b: Int): Int = a + b
fun main() {
val result = add(2, 3)
println(if (result == 5) "PASS" else "FAIL")
}Snelle controle
Je hebt vóór elke afzonderlijke testmethode een nieuwe, lege lijst nodig. Welke annotatie past hierbij?
Samenvatting
Je kunt JUnit5-tests structureren:
@Testmarkeert tests en@DisplayNamegeeft ze een naam@BeforeEachen@BeforeAllregelen de voorbereiding- Ordenen-uitvoeren-controleren houdt tests duidelijk
@Nesteden@ParameterizedTeststructureren en schalen tests
Hierna: asserties.
Leer Kotlin met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 51
- Lessen
- 203
Veelgestelde vragen
Is de les “Tests schrijven met JUnit5” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Kotlin Academy, waaronder “Tests schrijven met JUnit5”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Kotlin Academy bevat in totaal 4 lessen.
Wat leer ik in “Tests schrijven met JUnit5”?
Structureer tests Je oefent met Kotlin Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Kotlin Academy te beginnen?
Ervaring vooraf is niet nodig. Kotlin Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Tests schrijven met JUnit5”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Kotlin Academy?
Ja. Elke les over Kotlin Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Tests schrijven met JUnit5
- Assertions
- Mocking met MockK
- Coroutines testen