Argumenten vastleggen met ArgumentCaptor
Gebruik Mockito's ArgumentCaptor om in complexe scenario's de exacte objecten vast te leggen die aan een mock zijn doorgegeven en daarop assertions uit te voeren.
Argumenten vastleggen met ArgumentCaptor is een gratis Testen beheersen: JUnit, Mockito en integratietesten-les op CoddyKit. Dit is les 4 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 Testen beheersen: JUnit, Mockito en integratietesten. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Testen beheersen: JUnit, Mockito en integratietesten bevat in totaal 4 lessen.
Controleren wat is doorgegeven
Soms is het niet genoeg om te controleren of een methode is aangeroepen. Je moet de werkelijke parameter controleren die de code heeft samengesteld en doorgegeven. Mockito's ArgumentCaptor haalt die waarde op zodat je die kunt inspecteren.
Matchers versus captors
Argumentmatchers zoals eq(...) controleren invoer tijdens de verificatie. Een captor legt de parameter vast, zodat je daarna uitgebreide controles kunt uitvoeren.
Een captor maken
Declareer een captor voor het type dat je verwacht vast te leggen.
ArgumentCaptor<User> captor =
ArgumentCaptor.forClass(User.class);Vastleggen tijdens verify
Geef capture() van de captor door op de plek waar de parameter binnen verify zou komen.
verify(repo).save(captor.capture());De waarde uitlezen
Haal na de verificatie het vastgelegde object op en controleer de velden ervan.
User saved = captor.getValue();
assertEquals("Ada", saved.getName());Volledig voorbeeld
Hier bevestigen we dat de service de juiste gebruiker samenstelt voordat deze wordt opgeslagen.
service.register("Ada", "ada@x.io");
verify(repo).save(captor.capture());
assertEquals("ada@x.io",
captor.getValue().getEmail());Meerdere aanroepen vastleggen
Als de methode meerdere keren is aangeroepen, gebruik je getAllValues() om elke vastgelegde parameter in de juiste volgorde op te halen.
verify(repo, times(2)).save(captor.capture());
List<User> all = captor.getAllValues();De annotatie @Captor
Je kunt captors als velden declareren met @Captor wanneer je de Mockito-extensie gebruikt. Zo verminder je boilerplate.
@Captor
ArgumentCaptor<User> captor;Captor of matcher?
Gebruik een matcher voor eenvoudige gelijkheidscontroles tijdens het aanroepen. Gebruik een captor wanneer de parameter complex is, intern wordt opgebouwd of meerdere controles nodig heeft.
Vermijd overmatig gebruik
Captors koppelen tests aan interne constructiedetails. Gebruik ze voor echt complexe parameters, niet voor alles, zodat tests robuust blijven.
Waarom dit belangrijk is
Met captors kun je de precieze gegevens controleren die je code aan samenwerkende onderdelen doorgeeft. Zo ontdek je subtiele fouten bij het toewijzen of transformeren van gegevens.
Korte controle
Hoe haal je de vastgelegde parameter na de verificatie op?
Samenvatting
Je hebt het vastleggen van parameters geleerd:
ArgumentCaptor.forClassof@Captormaakt een captor- Geef
capture()door binnenverify - Met
getValue()/getAllValues()lees je de vastgelegde gegevens uit - Gebruik captors voor complexe, intern opgebouwde parameters
Leer Testen beheersen: JUnit, Mockito en integratietesten 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
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Argumenten vastleggen met ArgumentCaptor” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Testen beheersen: JUnit, Mockito en integratietesten, waaronder “Argumenten vastleggen met ArgumentCaptor”, 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 Testen beheersen: JUnit, Mockito en integratietesten bevat in totaal 4 lessen.
Wat leer ik in “Argumenten vastleggen met ArgumentCaptor”?
Gebruik Mockito's ArgumentCaptor om in complexe scenario's de exacte objecten vast te leggen die aan een mock zijn doorgegeven en daarop assertions uit te voeren. Je oefent met Testen beheersen: JUnit, Mockito en integratietesten 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 Testen beheersen: JUnit, Mockito en integratietesten te beginnen?
Ervaring vooraf is niet nodig. Testen beheersen: JUnit, Mockito en integratietesten 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 4 van 4.
Hoe lang duurt de les “Argumenten vastleggen met ArgumentCaptor”?
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 Testen beheersen: JUnit, Mockito en integratietesten?
Ja. Elke les over Testen beheersen: JUnit, Mockito en integratietesten 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
- Aangepaste antwoorden en callbacks
- Statische methoden en constructors mocken
- Best practices voor Mockito
- Argumenten vastleggen met ArgumentCaptor