Je n'ai jamais aimé les tests unitaires. J'ai toujours pensé que cela augmentait la quantité de travail que je devais faire.
Il s'avère que cela n'est vrai qu'en termes de nombre réel de lignes de code que vous écrivez et en outre, cela est complètement compensé par l'augmentation du nombre de lignes de code utile que vous pouvez écrire en une heure avec des tests et un développement piloté par les tests.
Maintenant, j'adore les tests unitaires car ils me permettent d'écrire du code utile, qui fonctionne souvent la première fois! (touchons du bois)
J'ai constaté que les gens hésitent à faire des tests unitaires ou à démarrer un projet avec un développement piloté par les tests s'ils sont soumis à des délais stricts ou dans un environnement où d'autres ne le font pas, donc ils ne le font pas. Un peu comme un refus culturel d'essayer même.
Je pense que l'une des choses les plus puissantes des tests unitaires est la confiance que cela vous donne pour entreprendre une refactorisation. Cela donne également un nouvel espoir, que je peux donner mon code à quelqu'un d'autre pour refactoriser / améliorer, et si mes tests unitaires fonctionnent toujours, je peux utiliser la nouvelle version de la bibliothèque qu'ils ont modifiée, à peu près, sans crainte.
C'est ce dernier aspect des tests unitaires qui, je pense, a besoin d'un nouveau nom. Le test unitaire ressemble plus à un contrat de ce que ce code devrait faire maintenant et à l'avenir.
Quand j'entends le mot test, je pense aux souris dans des cages, avec plusieurs expériences faites sur elles pour voir l'efficacité d'un composé. Ce n'est pas ce que sont les tests unitaires, nous n'essayons pas un code différent pour voir quelle est l'approche la plus affective, nous définissons les sorties que nous attendons avec quelles entrées. Dans l'exemple des souris, les tests unitaires ressemblent davantage aux définitions du fonctionnement de l'univers, par opposition aux expériences effectuées sur les souris.
Suis-je sur le crack ou quelqu'un d'autre voit-il ce refus de faire des tests et pense-t-il que c'est une raison similaire pour laquelle il ne veut pas le faire?
Quelles raisons donnez-vous / les autres pour ne pas effectuer de test?
Selon vous, quelles sont leurs motivations à ne pas effectuer de tests unitaires?
Et en tant que nouveau nom pour les tests unitaires qui pourraient surmonter certaines des objections, que diriez-vous de jContract? (Un peu centré sur Java je sais :), ou des contrats unitaires?