Partie 14 — Tests & qualité
Public : BookLab est riche en fonctionnalités (Parties 1-13). Sans tests ni qualité automatisée, chaque évolution devient un pari. Cette partie sécurise le tout. Objectif de la partie : écrire des tests unitaires, fonctionnels (WebTestCase) et d’API (ApiTestCase) ; gérer fixtures, mocks et data providers ; analyser statiquement avec PHPStan ; formater avec CS Fixer et moderniser avec Rector ; et automatiser le tout en CI (GitHub Actions).
Ce que vous saurez faire à la fin de cette partie
- Écrire des tests unitaires rapides (services, logique métier) avec PHPUnit.
- Écrire des tests fonctionnels (WebTestCase) qui simulent des requêtes HTTP.
- Tester l’API (ApiTestCase d’API Platform) : statuts, JSON, sécurité.
- Isoler avec mocks et MockHttpClient, factoriser avec data providers et fixtures.
- Faire de l’analyse statique (PHPStan) et du formatage (CS Fixer), moderniser (Rector).
- Mettre en place une pipeline CI (GitHub Actions) qui bloque le merge si quelque chose casse.
Pourquoi c’est un argument professionnel
Un backend testé et outillé (analyse statique, CI) est ce qui distingue un produit sérieux d’un prototype — et un freelance sérieux d’un amateur (Partie 17). C’est aussi ce qui rend BookLab maintenable : on refactore sans peur.
Chapitres de cette partie
- PHPUnit & tests unitaires — installer, écrire un test, assertions, tester un service isolé.
- Tests fonctionnels (WebTestCase) — simuler des requêtes, cliquer, soumettre, asserter la réponse.
- ApiTestCase — tester l’API (statuts, JSON, JSON Schema, sécurité JWT).
- Fixtures, mocks & data providers — données de test, doubles, cas paramétrés, base de test.
- PHPStan — analyse statique, niveaux, faux positifs, génériques.
- CS Fixer & Rector — style de code cohérent, refactoring automatisé, modernisation.
- CI GitHub Actions — pipeline : tests + PHPStan + CS Fixer + audit, sur chaque PR.
Prochain chapitre : 14.1 — PHPUnit & tests unitaires.