Normes de test
Ensemble de règles contraignant la génération de code de test par l'IA. Trois niveaux :
- unit-test-standards.md : Tests unitaires — Structure AAA / Règles de simulacres / Style d'assertion / Isolation des tests
- contract-test-standards.md : Tests contractuels — Traduction des scénarios d'acceptation / Couverture des trois états / Rouge-vert d'abord
- test-data-standards.md : Données de test — Data factories / Testcontainers / Isolation
Matrice de chargement
| Type de tâche | Lecture obligatoire |
|---|---|
| Écrire des tests unitaires | standards/unit-test-standards.md |
| Écrire des tests contractuels d'interface (en lien avec ai-dev-workflow 4.2) | standards/contract-test-standards.md + standards/unit-test-standards.md |
| Préparer des données de test / tests d'intégration base de données | standards/test-data-standards.md |
| Réviser du code de test | Tout (selon le type correspondant) |
Aide-mémoire des règles essentielles
- Les tests sont des critères d'acceptation : il est interdit de modifier les assertions, supprimer des tests ou utiliser @Disabled (le code ne doit pas s'adapter aux tests)
- Un test = un comportement, structure AAA ; assertions fluides avec AssertJ
- Noms de méthodes en anglais en camelCase (
createOrderShouldReturn400WhenUserNotExist), interdiction des noms en chinois ou en pinyin ; Javadoc des cas en chinois - Toutes les dépendances simulées, ne pas tester les détails d'implémentation ; pas de Thread.sleep
- Tests contractuels : couvrir les trois états (valide / invalide / frontière), rouge-vert d'abord
- Données de test industrialisées ; pour les requêtes SQL complexes, utiliser Testcontainers avec une base réelle
- Isolation des tests : ne pas dépendre de l'ordre d'exécution, ne pas partager d'état mutable
Relations avec les autres compétences
- ai-dev-workflow : 4.2
/contract-tests: le processus de test contractuel référence les normes de test contractuel de cette compétence (le processus est dans la compétence processus, les normes de code sont dans cette compétence) - java-code-standards : Les normes de code Java référencent cette compétence (chargée lors de l'écriture de tests)
- database-standards / comment-standards : Aucune référence directe
Exigences d'utilisation
Avant de générer tout code de test, lisez les normes selon la « Matrice de chargement par type de tâche » ; après génération, vérifiez point par point avec la checklist correspondante. Pour les tests contractuels, appliquez le principe rouge-vert : la cause du rouge doit être « l'implémentation n'existe pas » et non « le test est mal écrit ».