Ontwikkelworkflow
Schrijf Schonere Code met Claude-Gedreven TDD
Red, green, refactor, met AI die de tests schrijft
Claude Code is uitzonderlijk goed in TDD: je beschrijft het gewenste gedrag, het schrijft eerst de falende test, en implementeert dan de code die hem laat slagen. Dit keert het traditionele pijnpunt van TDD om: het schrijven van tests is niet langer het trage deel. Jij focust op het specificeren van gedrag in gewone taal, en Claude Code regelt de boilerplate van testopzet, assertions en mocking. Het resultaat is hogere testdekking, beter ontworpen code, en snellere ontwikkeling.
Testgedreven ontwikkeling met Claude Code volgt de red-green-refactor-cyclus: je beschrijft het gewenste gedrag, laat Claude een falende test schrijven, en vraagt het dan om de code te implementeren die de test laat slagen. Claude Code behandelt de volledige cyclus autonoom wanneer het duidelijke specificaties krijgt.
De Cyclus
De TDD-cyclus met Claude Code
Beschrijf het gedrag dat je wilt implementeren: "Gebruikers moeten hun wachtwoord via e-mail kunnen resetten. Het endpoint moet valideren dat de e-mail bestaat, een tijdgebonden token genereren, en een resetlink versturen." Claude Code schrijft eerst de test, die de verwachte HTTP-respons, de tokengeneratie, en de e-mailverzending verifieert, voordat er enige implementatie bestaat. Het draait de test om te bevestigen dat deze om de juiste reden faalt (ontbrekende functie, geen syntaxfout).
Claude Code schrijft dan de eenvoudigste implementatie die de test laat slagen. Het overengineert niet, het schrijft precies genoeg code om de testassertions te voldoen. Deze discipline is waar TDD schittert: de test definieert het contract, en de implementatie vervult het. Claude Code draait de testsuite na het schrijven van de implementatie om te verifiëren dat de nieuwe test slaagt en geen bestaande tests breken.
Met slagende tests als vangnet vraag je Claude Code om de implementatie op te schonen: helperfuncties extraheren, variabelenamen verbeteren, duplicatie verminderen, of prestaties optimaliseren. Na elke refactoringstap draait Claude Code de tests opnieuw. Als een test faalt, heeft de refactoring een gedragsverandering veroorzaakt, en Claude Code zal deze terugdraaien of aanpassen. Deze fase levert schone, onderhoudbare code op, ondersteund door uitgebreide tests.
Doorloop
Je eerste testgedreven feature schrijven
Begin door Claude Code te vertellen wat de feature moet doen vanuit het perspectief van de gebruiker. In plaats van "maak een functie genaamd calculateDiscount die een prijs en een percentage neemt", zeg "klanten met een premium lidmaatschap moeten 20% korting krijgen op hun ordertotaal, maar de korting mag nooit meer dan $50 bedragen". Deze gedragsmatige beschrijving levert betere tests op omdat de tests bedrijfsregels verifiëren, geen implementatiedetails.
Claude Code schrijft een testbestand met meerdere testgevallen: het happy path (premium gebruiker, geldige korting), edge cases (korting overschrijdt de limiet van $50, bestelling met nulprijs), en foutgevallen (niet-premium gebruiker, negatieve prijs). Beoordeel deze tests voordat je Claude Code de feature laat implementeren. De testgevallen definiëren je specificatie; als er een geval ontbreekt, voeg het nu toe. Het is veel goedkoper om een testgeval toe te voegen dan om een ontbrekende edge case in productie te ontdekken.
Zodra je de tests goedkeurt, zeg je Claude Code de feature te implementeren. Het schrijft de code, draait de tests, en toont je de resultaten. Als alle tests bij de eerste poging slagen, kun je verdergaan naar refactoring. Als sommige tests falen, leest Claude Code de foutoutput en past de implementatie aan. Deze cyclus wordt doorgaans binnen één of twee iteraties afgerond, veel sneller dan de handmatige schrijf-draai-debug-lus.
Waarom Het Werkt
Waarom Claude Code TDD makkelijker maakt
De belangrijkste reden dat ontwikkelaars TDD overslaan is dat het schrijven van tests traag en vervelend aanvoelt, vooral de setupcode, mocking, en boilerplate-assertions. Claude Code elimineert deze wrijving volledig. Je beschrijft in één zin wat er moet gebeuren, en Claude Code genereert het complete testbestand met correcte imports, fixtures, mocks, en dekking van edge cases. De cognitieve belasting verschuift van "hoe mock ik deze dependency" naar "welk gedrag is belangrijk".
Wanneer Claude Code tests schrijft op basis van een gedragsbeschrijving, genereert het edge cases die ontwikkelaars vaak vergeten: lege invoer, grenswaarden, gelijktijdige toegang, null-afhandeling, en ongeldige statusovergangen. Het doet dit omdat het miljoenen testsuites heeft gezien en weet welke edge cases vaak bugs veroorzaken. Je krijgt grondigere testdekking zonder zelf aan elk geval te moeten denken.
TDD is moeilijk vol te houden omdat de verleiding om de test over te slaan en de code direct te schrijven altijd aanwezig is. Met Claude Code is het eerst schrijven van de test eigenlijk sneller dan eerst de implementatie te schrijven; er is geen prikkel om het over te slaan. De Red-Green-Refactor-cyclus wordt vanzelfsprekend omdat Claude Code elke stap afdwingt: het schrijft de test, draait die om falen te bevestigen, implementeert de code, en draait de test opnieuw om succes te bevestigen.
Framework-ondersteuning
Testframeworks die Claude Code ondersteunt
Claude Code schrijft Jest- en Vitest-tests met correcte mocking, asynchrone afhandeling, snapshot-testing, en React Testing Library-integratie. Het genereert describe/it-blokken die lezen als specificaties en gebruikt beforeEach/afterEach voor schone testisolatie.
Volledige pytest-ondersteuning inclusief fixtures, parametrize, marks, conftest.py, en plugins zoals pytest-asyncio, pytest-django, en pytest-mock. Claude Code schrijft tests die dependency injection via fixtures gebruiken en het Arrange-Act-Assert-patroon volgen.
Claude Code schrijft idiomatische, tabelgedreven Go-tests met correcte foutafhandeling en subtests, en Rust #[test]-functies met correcte Result-afhandeling, setup/teardown, en proptest-integratie voor property-based testen.
Voor full-stack TDD schrijft Claude Code Playwright-tests die je volledige applicatie vanuit de browser doorlopen. Het regelt paginanavigatie, formulierinteractie, API-assertions, en visuele regressie, waardoor je user stories kunt beschrijven terwijl het de geautomatiseerde testscripts genereert.
Veelgestelde Vragen
TDD met Claude Code, veelgestelde vragen
Absoluut. Claude Code leest je bestaande testinfrastructuur, testframework, fixtures, mocks, factories, en conventies, en schrijft nieuwe tests die natuurlijk aansluiten op je bestaande suite. Als je project pytest met conftest.py-fixtures gebruikt, genereert Claude Code tests die die fixtures gebruiken. Als je React-project Testing Library met aangepaste render-utilities gebruikt, volgt Claude Code dat patroon. Je hoeft niet opnieuw te beginnen.
Het dekkingspercentage is minder belangrijk dan de dekkingskwaliteit. Claude Code helpt je te focussen op gedragsdekking in plaats van regeldekking. Wanneer je de feature beschrijft in termen van wat het moet doen (niet hoe), dekken de gegenereerde tests vanzelf de belangrijke paden. Dat gezegd hebbende, Claude Code kan je bestaande dekkingsrapport analyseren en ongeteste vertakkingen identificeren, en vervolgens gerichte tests schrijven om gaten te vullen. Streef naar grondige dekking van bedrijfslogica en foutafhandeling, niet 100% regeldekking.
Ja. Claude Code schrijft integratietests die meerdere componenten samen testen, API-endpoints die een echte testdatabase raken, React-componenten die interacteren met gemockte API-responses, of servicelagen die meerdere dependencies coördineren. Het regelt het opzetten en afbreken van de testdatabase, testfixtures, en mock-serverconfiguratie. Voor API-integratietests genereert het tests die de volledige request-response-cyclus verifiëren, inclusief authenticatie, validatie, en foutresponses.
Na Green (tests slagen met werkende implementatie) begin je de Refactor-fase. Vraag Claude Code om de implementatie te verbeteren, functies te extraheren, duplicatie te verminderen, naamgeving te verbeteren, of prestaties te optimaliseren. Claude Code voert de wijzigingen door en draait de testsuite opnieuw na elke refactoringstap. Als een test faalt, betekent dit dat de refactoring het gedrag heeft veranderd, en Claude Code zal de refactoring herstellen of de gedragsverandering markeren voor jouw beoordeling. De tests dienen als vangnet gedurende het hele proces.
Beschrijf het gedrag van de feature in natuurlijke taal, laat Claude Code de falende test schrijven (Red), vraag het dan om de code te implementeren die de test laat slagen (Green), en vraag ten slotte om een refactor (Refactor). Deze Red-Green-Refactor-cyclus met Claude Code is sneller dan handmatige TDD omdat Claude zowel de tests als de implementatie schrijft terwijl jij je concentreert op het definiëren van de vereisten.
Ja. Claude Code draait je testsuite na het schrijven van elke test en na elke implementatiewijziging. Het leest de testoutput, identificeert fouten, en itereert totdat de tests slagen. Je kunt ook hooks instellen om linters en typecheckers automatisch te draaien na elke bestandsbewerking, waardoor een volledig geautomatiseerde kwaliteitspoort ontstaat.
Leer TDD met Claude Code
Stop met erover te lezen. Bouw iets.