• # Pourquoi des test unitaires

    Posté par . En réponse au message tests unitaires. Évalué à 7.

    La grande difficulté des tests unitaires c’est de comprendre ce que représente une unité. Il ne faut pas voir l’unité comme forcément une fonction ou une méthode. L’idée est de tester un comportement. Selon les cas, une seule fonction sera suffisante pour le représenter mais bien souvent ça sera sera plusieurs fonctions ou un groupe d’objets.
    La réponse n’est d’ailleurs pas connue d’avance et elle peut varier en fonction des habitudes de programmation ou des choix architecturaux.

    J’ai un peu divagué et mon avis sur l’intérêt des tests unitaires :

    • c’est qu’ils évitent les régressions ;
    • ils documentent le code ;
    • ils permettent de se dire que si ça passe le code fera ce pourquoi il est prévu ;
    • il y a une diminution du stress car ils apportent de la confiance ;
    • ils permettent d’avoir un code plus expressif ;
    • ils évitent d’avoir du code totalement couplé dont la maintenance est un sacerdoce ;
    • ils permettent au développeur de devenir meilleur car il peut expérimenter sans risque de régressions, si ça ne passe pas git reset --hard et on passe à autre chose.

    Plein d’avantages pour ma part et ceux cités ne sont pas dans un ordre particulier. Mais, et c’est un gros mais, il faut une grosse dose d’abnégation pour passer d’écrire les tests après, à écrire les tests en premier puis arriver à faire émerger le design du code en implémentant les tests.