Stratégies de test avec Claude Code : guide pratique
Comment utiliser Claude Code pour écrire des tests efficaces : TDD, E2E, mocking et bonnes pratiques.
Les tests sont souvent la partie la moins aimée du développement. Claude Code change la donne en rendant l'écriture de tests aussi rapide que l'écriture du code lui-même. Voici comment en tirer le meilleur parti.
TDD avec Claude Code
Le Test-Driven Development est le workflow idéal avec Claude Code :
Le cycle Red-Green-Refactor
- Red : Demandez à Claude d'écrire le test en premier
- Green : Demandez l'implémentation minimale qui fait passer le test
- Refactor : Demandez d'améliorer le code en gardant les tests verts
Exemple concret
Vous : "Crée un test pour une fonction formatPrice qui prend un nombre
et retourne un string formaté en euros (ex: 42.5 → '42,50 €')"
Claude écrit le test :
describe('formatPrice', () => {
it('formats integer price', () => {
expect(formatPrice(42)).toBe('42,00 €');
});
it('formats decimal price', () => {
expect(formatPrice(42.5)).toBe('42,50 €');
});
it('handles zero', () => {
expect(formatPrice(0)).toBe('0,00 €');
});
});
Puis l'implémentation suit naturellement.
Tests E2E avec Playwright
Le Playwright Skill (score 85/100) est le meilleur allié pour les tests E2E :
Patterns recommandés
1. Page Object Model
Demandez à Claude de structurer vos tests avec le POM :
class LoginPage {
constructor(private page: Page) {}
async login(email: string, password: string) {
await this.page.getByLabel('Email').fill(email);
await this.page.getByLabel('Password').fill(password);
await this.page.getByRole('button', { name: 'Sign in' }).click();
}
}
2. Fixtures réutilisables
const test = base.extend<{ loginPage: LoginPage }>({
loginPage: async ({ page }, use) => {
await use(new LoginPage(page));
},
});
3. Network mocking
Pour les tests rapides et fiables :
await page.route('**/api/users', route =>
route.fulfill({ json: [{ id: 1, name: 'Test' }] })
);
Tests unitaires avec Jest
Le Jest Testing Expert skill guide Claude pour :
- Tests avec mocking avancé (
jest.spyOn,jest.mock) - React Testing Library (render, screen, userEvent)
- Tests asynchrones (waitFor, findBy)
- Coverage ciblée (pas 100%, mais les chemins critiques)
Le piège du sur-testing
Claude a tendance à écrire trop de tests. Guidez-le :
"Écris uniquement les tests pour les cas limites et les chemins
d'erreur. Le happy path est couvert par les tests E2E."
Bonnes pratiques
1. Un test = un comportement
Chaque test vérifie un seul comportement. Pas de tests qui testent 5 choses à la fois.
2. Noms descriptifs
✅ "should return 404 when user does not exist"
❌ "test user endpoint"
3. Pas de logique dans les tests
Les tests doivent être linéaires : setup → action → assertion. Pas de if/else, pas de boucles.
4. Tests indépendants
Chaque test doit pouvoir tourner seul, dans n'importe quel ordre.
Skills recommandés
| Besoin | Skill |
|---|---|
| Tests E2E | Playwright Skill |
| Tests unitaires | Jest Testing Expert |
| Tests de design | Pict Test Designer |
| Tests d'accessibilité | Design Auditor |
| Tests de sécurité | VibeSec Skill |
Conclusion
Avec les bons skills, Claude Code transforme les tests d'une corvée en un workflow fluide. La clé : utilisez le TDD, soyez spécifique dans vos demandes, et laissez Claude gérer le boilerplate.