Unit testen met JUnit en Mockito
Test componenten geïsoleerd.
Unit testen met JUnit en Mockito is een gratis Spring Boot 4-microservices en REST-API's-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Spring Boot 4-microservices en REST-API's. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Spring Boot 4-microservices en REST-API's bevat in totaal 4 lessen.
Waarom unittests
Een unit-test verifieert één klasse geïsoleerd, waarbij de samenwerkende onderdelen door fakes zijn vervangen.
- Snel — geen Spring-context en geen database
- Gericht — test één stukje logica
- Betrouwbaar — geen externe afhankelijkheden
De basis van JUnit 5
Spring Boot gebruikt JUnit 5 (Jupiter). Een test is een methode met de annotatie @Test.
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class CalculatorTest {
@Test
void addsTwoNumbers() {
assertEquals(5, 2 + 3);
}
}Annotaties voor de levenscyclus
Gebruik @BeforeEach om vóór elke test de toestand in te stellen en @AfterEach om op te ruimen.
@BeforeEach
void setUp() {
calculator = new Calculator();
}
@Test
void addsCorrectly() {
assertEquals(7, calculator.add(3, 4));
}Fluent assertions met AssertJ
Spring Boot bevat AssertJ voor leesbare assertions met assertThat.
import static org.assertj.core.api.Assertions.assertThat;
assertThat(result).isEqualTo(42);
assertThat(list).hasSize(3).contains("a");Wat is Mockito
Mockito maakt mockobjecten — nepimplementaties van afhankelijkheden waarvan je het gedrag beheert.
Zo kun je een klasse testen zonder de echte samenwerkende onderdelen, zoals een database of HTTP-clients.
Mocks maken
Voorzie de testklasse van de annotatie @ExtendWith(MockitoExtension.class). Gebruik @Mock voor afhankelijkheden en @InjectMocks voor de klasse die je test.
@ExtendWith(MockitoExtension.class)
class UserServiceTest {
@Mock
UserRepository repository;
@InjectMocks
UserService service;
}Stubs instellen met when/thenReturn
Definieer het gedrag van een mock met when(...).thenReturn(...).
@Test
void returnsUserById() {
User alice = new User("1", "Alice");
when(repository.findById("1"))
.thenReturn(Optional.of(alice));
User result = service.getById("1");
assertThat(result.getName()).isEqualTo("Alice");
}Een mock een fout laten genereren
Gebruik thenThrow om foutcondities te simuleren.
when(repository.findById("99"))
.thenThrow(new RuntimeException("DB down"));
assertThrows(RuntimeException.class,
() -> service.getById("99"));Interacties verifiëren
verify controleert of een mock-methode met de verwachte argumenten is aangeroepen.
@Test
void savesUser() {
service.create(new User("2", "Bob"));
verify(repository).save(any(User.class));
verify(repository, times(1)).save(any());
}Argumentmatchers
Matchers zoals any(), eq() en anyString() maken stubs flexibel.
when(repository.findByName(anyString()))
.thenReturn(List.of(new User("1", "Alice")));
verify(repository).deleteById(eq("1"));Argumenten vastleggen
ArgumentCaptor legt de waarde vast die aan een mock is doorgegeven, zodat je deze kunt controleren.
ArgumentCaptor<User> captor =
ArgumentCaptor.forClass(User.class);
verify(repository).save(captor.capture());
assertThat(captor.getValue().getName())
.isEqualTo("Bob");Korte controle
Test je begrip van Mockito.
Samenvatting
Je hebt geleerd hoe je snelle unit-tests schrijft:
- JUnit 5 met
@Testen@BeforeEach - AssertJ
assertThatvoor leesbare controles - Mockito
@Mock/@InjectMocks when/thenReturnom stubs in te stellen enverifyom aanroepen te bevestigen
Leer Java 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
- 24
- Lessen
- 93
Veelgestelde vragen
Is de les “Unit testen met JUnit en Mockito” gratis?
Ja — de volledige tekst van “Unit testen met JUnit en Mockito” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Spring Boot 4-microservices en REST-API's wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Spring Boot 4-microservices en REST-API's bevat in totaal 4 lessen.
Wat leer ik in “Unit testen met JUnit en Mockito”?
Test componenten geïsoleerd. Je oefent met Spring Boot 4-microservices en REST-API's 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 Spring Boot 4-microservices en REST-API's te beginnen?
Ervaring vooraf is niet nodig. Spring Boot 4-microservices en REST-API's 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 “Unit testen met JUnit en Mockito”?
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 Spring Boot 4-microservices en REST-API's?
Ja. Elke les over Spring Boot 4-microservices en REST-API's 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
- Unit testen met JUnit en Mockito
- Tests van de weblaag met MockMvc
- Integratietests met @SpringBootTest
- Echte afhankelijkheden met Testcontainers