Dernière modification : Dec 08 , 2024

Comment écrire un bon test unitaire ?


L'approche "pragmatique"

Qu'est qu'un bon test ?

Les tests mesurent la qualité finale de l'application, pas les états successifs du développement
Les tests doivent rendrent la vie des futures mainteneurs de l'application plus simple. C'est encore plus important que pour les développeurs actuels.

Ecrire un meilleur code est plus important qu'une couverture de code exhaustive pour satisfaire la TDD.

Tous les tests ne sont pas égaux

Qu'est qu'un bon test unitaire ?

  • Vérifie une petite portion du code ou vérifie un comportement bien déterminé et un résultat simple
  • S'exécute rapidement
  • S'exécute de manière isolée du reste du système
  • Résiste bien aux régressions
  • Résiste bien au refactoring
  • Fournit un retour efficace sur ce qui fonctionne / fonctionne pas
  • Est facilement maintenable

Les mauvaises pratiques

  • Tester les méthodes privées
  • Exposer des méthodes pour pouvoir les tester
  • Tester du code trivial (getter, setter)
  • Ajouter du code métier dans les tests plutot que dans le domaine
  • Créer des mocks sur des classes concrètes (JMockito)
  • Tester avec des valeurs aléatoires (en général)
  • Ne pas avoir d'assertions
  • Ne pas documenter les assertions
  • Avoir des tests fragiles très dépendant du SUT

Comment écrire un bon test unitaire ?

Created by Sylvain Leroy