Open tonyop62 opened 9 years ago
Le but est de couvrir toutes les possibilités d'exécution du code métier. Donc tant que ce but est atteint, à la limite, peu importe.
Par contre, si le code de test devient aussi compliqué que le code de l'application, on n'a pas gagné grand chose. Si vous changez d'avis sur ce que l'application doit faire, il faudra adapter les tests en conséquence. Donc en général on préfère faire plusieurs tests courts (quelques lignes), sans aucune logique (conditionnelles, boucles), que peu de gros qui enchaînent de nombreuses vérifications et qui seront probablement redondants en partie.
Lire un test ne doit pas demander de réfléchir : c'est important de contrôler la situation initiale et le scénario du test, et que les deux soient clairs. Si vous vous rendez compte que plusieurs tests partent d'une situation commune, vous pouvez faire une méthode auxiliaire pour établir cette situation. Si on n'arrive pas à écrire des tests qui sont "évidents" à lire, c'est souvent révélateur de problèmes dans le code métier.
Je viens de voir SuperBombTest
. Clairement cela mérite de séparer chaque test individuel dans des méthodes distinctes ; je n'ai pas l'impression qu'ils ont besoin d'être enchaînés dans un ordre précis.
Dans la classe Bombtest, faut-il une méthode pour tester chaque méthode de la bombe ou on peut faire une méthode générale , car au final, j'utilise quasiment à chaque fois la méthode update car celle-ci regroupe les autres méthodes ?