Un peu de contexte: un peu plus tôt dans la journée, j'ai dû mettre à jour le code SQL fourni par un autre de mes collègues. Comme il s'agit d'un script assez volumineux, il est stocké dans un fichier séparé (qui est ensuite lu et exécuté à l'exécution). Ce faisant, j'ai accidentellement réintroduit deux bogues remontant à quelques mois, à savoir:
- Pour une raison quelconque, le fichier ASCII a été encodé en UTF-16 (le collègue m'a envoyé le fichier par courrier électronique, ce qui aurait pu le provoquer).
- Le script manquait dans les
SET
instructions initiales (requis en raison de certains éléments du pilote en production, mais pas lors d'une installation propre localement).
Après avoir débogué cela pendant environ une heure (encore), j'ai décidé d'écrire des tests unitaires pour s'assurer que cela ne se reproduirait plus jamais (et d'inclure un moyen rapide de le corriger dans le message d'assertion afin de fournir une solution simple aux futurs développeurs).
Cependant, lorsque j'ai appliqué ce code, un autre collègue (qui est également notre chef d'équipe) s'est approché de moi et m'a dit que je ne devrais plus refaire ces choses parce que:
"Ces choses ne font pas partie des tests unitaires"
"Les tests unitaires ne doivent être utilisés que pour vérifier le flux de votre code"
Je suis assez en conflit maintenant car je pense toujours que ce que je fais n'est pas faux, car ce bogue ne serait pas réintroduit à l'avenir. Cependant, ce collègue travaille en tant que senior et décide en fin de compte de ce que nous passons notre temps dessus. Que devrais-je faire? Ai-je tort de le faire de cette façon? Est-ce considéré comme une mauvaise pratique?