Workflow di Sviluppo
Scrivi Codice Più Pulito con il TDD Potenziato da Claude
Red, green, refactor, con l'IA che scrive i test
Claude Code è eccezionalmente bravo nel TDD: descrivi il comportamento che vuoi, scrive prima il test che fallisce, poi implementa il codice che lo fa passare. Questo inverte il tradizionale punto dolente del TDD: scrivere test non è più la parte lenta. Tu ti concentri sulla specifica del comportamento in linguaggio naturale, e Claude Code gestisce il lavoro ripetitivo di setup dei test, assertion e mocking. Il risultato è una copertura di test più alta, codice progettato meglio, e sviluppo più rapido.
Lo sviluppo guidato dai test con Claude Code segue il ciclo red-green-refactor: descrivi il comportamento che vuoi, lasci che Claude scriva un test che fallisce, poi gli chiedi di implementare il codice per farlo passare. Claude Code gestisce l'intero ciclo in modo autonomo quando riceve specifiche chiare.
Il Ciclo
Il ciclo TDD con Claude Code
Descrivi il comportamento che vuoi implementare: "Gli utenti dovrebbero poter reimpostare la password via email. L'endpoint dovrebbe verificare che l'email esista, generare un token a tempo limitato, e inviare un link di reset." Claude Code scrive prima il test, affermando la risposta HTTP attesa, la generazione del token, e l'invio dell'email, prima che esista alcuna implementazione. Esegue il test per confermare che fallisca per il motivo giusto (funzione mancante, non un errore di sintassi).
Claude Code scrive quindi l'implementazione più semplice che fa passare il test. Non sovra-ingegnerizza, scrive esattamente il codice necessario per soddisfare le assertion del test. Questa disciplina è dove il TDD risplende: il test definisce il contratto, e l'implementazione lo soddisfa. Claude Code esegue la suite di test dopo aver scritto l'implementazione per verificare che il nuovo test passi e che nessun test esistente si rompa.
Con i test che passano come rete di sicurezza, chiedi a Claude Code di pulire l'implementazione: estrarre funzioni helper, migliorare i nomi delle variabili, ridurre la duplicazione, o ottimizzare le performance. Dopo ogni passo di refactoring, Claude Code riesegue i test. Se un test fallisce, il refactoring ha introdotto un cambiamento di comportamento, e Claude Code lo annulla o lo modifica. Questa fase produce codice pulito e mantenibile, sostenuto da test completi.
Procedura Guidata
Scrivere la tua prima funzionalità guidata dai test
Inizia dicendo a Claude Code cosa dovrebbe fare la funzionalità dal punto di vista dell'utente. Invece di "crea una funzione chiamata calculateDiscount che prende un prezzo e una percentuale", dì "i clienti con abbonamento premium dovrebbero ottenere il 20% di sconto sul totale dell'ordine, ma lo sconto non dovrebbe mai superare i 50 $". Questa descrizione comportamentale produce test migliori perché i test verificano le regole di business, non i dettagli di implementazione.
Claude Code scrive un file di test con più casi: il percorso felice (utente premium, sconto valido), casi limite (sconto che supera il tetto di 50 $, ordine a prezzo zero), e casi di errore (utente non premium, prezzo negativo). Rivedi questi test prima di lasciare che Claude Code implementi la funzionalità. I casi di test definiscono la tua specifica; se manca un caso, aggiungilo ora. È molto più economico aggiungere un caso di test che scoprire un edge case mancante in produzione.
Una volta approvati i test, dì a Claude Code di implementare la funzionalità. Scrive il codice, esegue i test, e ti mostra i risultati. Se tutti i test passano al primo tentativo, puoi passare al refactoring. Se alcuni test falliscono, Claude Code legge l'output del fallimento e aggiusta l'implementazione. Questo ciclo si completa tipicamente in una o due iterazioni, molto più velocemente del ciclo manuale scrivi-esegui-debug.
Perché Funziona
Perché Claude Code rende il TDD più facile
La ragione principale per cui gli sviluppatori saltano il TDD è che scrivere test sembra lento e tedioso, specialmente il codice di setup, il mocking, e le assertion ripetitive. Claude Code elimina questo attrito completamente. Descrivi cosa dovrebbe succedere in una frase, e Claude Code genera il file di test completo con import corretti, fixture, mock, e copertura dei casi limite. Il carico cognitivo si sposta da "come faccio il mock di questa dipendenza" a "quale comportamento conta".
Quando Claude Code scrive test da una descrizione di comportamento, genera casi limite che gli sviluppatori spesso dimenticano: input vuoti, valori limite, accesso concorrente, gestione dei null, e transizioni di stato non valide. Lo fa perché ha visto milioni di suite di test e sa quali casi limite causano comunemente bug. Ottieni una copertura di test più approfondita senza dover pensare a ogni caso da solo.
Il TDD è difficile da mantenere perché la tentazione di saltare il test e scrivere direttamente il codice è sempre presente. Con Claude Code, scrivere prima il test è effettivamente più veloce che scrivere prima l'implementazione, quindi non c'è incentivo a saltarlo. Il ciclo Red-Green-Refactor diventa naturale perché Claude Code impone ogni passo: scrive il test, lo esegue per confermare il fallimento, implementa il codice, e riesegue il test per confermare il successo.
Supporto Framework
Framework di test supportati da Claude Code
Claude Code scrive test Jest e Vitest con mocking corretto, gestione asincrona, snapshot testing, e integrazione con React Testing Library. Genera blocchi describe/it che si leggono come specifiche e usa beforeEach/afterEach per un isolamento pulito dei test.
Supporto completo a pytest incluse fixture, parametrize, mark, conftest.py, e plugin come pytest-asyncio, pytest-django, e pytest-mock. Claude Code scrive test che usano la dependency injection tramite fixture e seguono il pattern Arrange-Act-Assert.
Claude Code scrive test Go idiomatici basati su tabelle con un corretto wrapping degli errori e subtest, e funzioni Rust #[test] con una corretta gestione di Result, setup/teardown, e integrazione con proptest per i property-based test.
Per il TDD full-stack, Claude Code scrive test Playwright che esercitano l'intera applicazione dal browser. Gestisce la navigazione tra le pagine, l'interazione con i form, le assertion sulle API, e la regressione visiva, permettendoti di descrivere user story mentre genera gli script di test automatizzati.
FAQ
TDD con Claude Code, domande comuni
Assolutamente. Claude Code legge la tua infrastruttura di test esistente, il framework di test, fixture, mock, factory, e convenzioni, e scrive nuovi test che si integrano naturalmente nella tua suite esistente. Se il tuo progetto usa pytest con fixture conftest.py, Claude Code genera test che usano quelle fixture. Se il tuo progetto React usa Testing Library con utility di render personalizzate, Claude Code segue quel pattern. Non devi ricominciare da zero.
La percentuale di copertura è meno importante della qualità della copertura. Claude Code ti aiuta a concentrarti sulla copertura del comportamento piuttosto che sulla copertura delle righe. Quando descrivi la funzionalità in termini di cosa dovrebbe fare (non come), i test generati coprono naturalmente i percorsi importanti. Detto questo, Claude Code può analizzare il tuo report di copertura esistente e identificare i rami non testati, poi scrivere test mirati per riempire le lacune. Punta a una copertura approfondita della logica di business e della gestione degli errori, non al 100% di copertura delle righe.
Sì. Claude Code scrive test di integrazione che fanno funzionare insieme più componenti, endpoint API che colpiscono un vero database di test, componenti React che interagiscono con risposte API mockate, o livelli di servizio che coordinano più dipendenze. Gestisce il setup e il teardown del database di test, le fixture di test, e la configurazione del mock server. Per i test di integrazione API, genera test che verificano l'intero ciclo richiesta-risposta inclusa l'autenticazione, la validazione, e le risposte di errore.
Dopo Green (i test passano con un'implementazione funzionante), entri nella fase Refactor. Chiedi a Claude Code di migliorare l'implementazione, estrarre funzioni, ridurre la duplicazione, migliorare la denominazione, o ottimizzare le performance. Claude Code effettua le modifiche e riesegue la suite di test dopo ogni passo di refactoring. Se un test fallisce, significa che il refactoring ha cambiato il comportamento, e Claude Code correggerà il refactoring o segnalerà il cambiamento di comportamento per la tua revisione. I test agiscono come rete di sicurezza durante tutto il processo.
Descrivi il comportamento della funzionalità in linguaggio naturale, lascia che Claude Code scriva il test che fallisce (Red), poi chiedigli di implementare il codice per far passare il test (Green), e infine richiedi un refactoring (Refactor). Questo ciclo Red-Green-Refactor con Claude Code è più veloce del TDD manuale perché Claude scrive sia i test che l'implementazione mentre tu ti concentri sulla definizione dei requisiti.
Sì. Claude Code esegue la tua suite di test dopo aver scritto ogni test e dopo ogni modifica all'implementazione. Legge l'output del test, identifica i fallimenti, e itera finché i test non passano. Puoi anche configurare hook per eseguire automaticamente linter e type checker dopo ogni modifica a un file, creando un quality gate completamente automatizzato.
Impara il TDD con Claude Code
Smetti di leggerne. Costruisci qualcosa.