Voici une liste de points que je tente de respecter à chaque fois que j’écris des tests unitaires.

  • Ma classe de test teste une et une seule classe à la fois
  • Mes méthodes testent une seule méthode à la fois
  • Mes noms de variables et de méthodes sont explicites
  • Mes tests sont lisibles par un être humain (ou au moins un autre développeur)
  • Mes tests prennent aussi en compte les exceptions
  • Mes tests ne font pas d’accès à la base de donnée
  • Mes tests ne font pas d’accès à des ressources réseau
  • Mes tests respectent les conventions de bon codage (longueur des lignes, complexité,…)
  • Mes tests contrôlent les effets de bords, valeurs limites (max, min) et les variables nulles (même en cas d’exception)
  • Mes tests peuvent fonctionner n’importe ou sans besoin de configuration spéciale
  • Mes tests sont concrets (les dates sont en dur, pas calculées à chaque fois, idem pour les chaines de caractère,…)
  • Mes tests simulent ce qui leur manque : méthodes externes, classes, instances…
Je suis sûr qu’il y a beaucoup à ajouter. Des idées ?