Spring Boot 4-microservices en REST-API's · Les

Unit testen met JUnit en Mockito

Test componenten geïsoleerd.

Les 1 van 413 stappen

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 @Test en @BeforeEach
  • AssertJ assertThat voor leesbare controles
  • Mockito @Mock / @InjectMocks
  • when/thenReturn om stubs in te stellen en verify om aanroepen te bevestigen
Gratis beginnen

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

  1. Unit testen met JUnit en Mockito
  2. Tests van de weblaag met MockMvc
  3. Integratietests met @SpringBootTest
  4. Echte afhankelijkheden met Testcontainers
← Terug naar Spring Boot 4-microservices en REST-API's