Cela explique pourquoi vous devriez faire des tests unitaires.
Les 3 vidéos ci-dessous couvrent les tests unitaires en javascript mais les principes généraux s'appliquent dans la plupart des langues.
Test unitaire: les minutes économiseront maintenant des heures plus tard - Eric Mann - https://www.youtube.com/watch?v=_UmmaPe8Bzc
Tests unitaires JS (très bien) - https://www.youtube.com/watch?v=-IYqgx8JxlU
Écriture de JavaScript testable - https://www.youtube.com/watch?v=OzjogCFO4Zo
Maintenant, j'apprends juste sur le sujet, donc je ne suis peut-être pas 100% correct et il y a plus que ce que je décris ici, mais ma compréhension de base des tests unitaires est que vous écrivez du code de test (qui est séparé de votre code principal) qui appelle une fonction dans votre code principal avec une entrée (arguments) requise par la fonction et le code vérifie ensuite s'il récupère une valeur de retour valide. S'il récupère une valeur valide, le cadre de tests unitaires que vous utilisez pour exécuter les tests affiche un feu vert (tout est bon) si la valeur n'est pas valide, vous obtenez un feu rouge et vous pouvez ensuite résoudre le problème immédiatement avant publier le nouveau code en production, sans tester, vous n'avez peut-être pas détecté l'erreur.
Vous écrivez donc des tests pour votre code actuel et créez le code pour qu'il passe le test. Des mois plus tard, vous ou quelqu'un d'autre devez modifier la fonction dans votre code principal, car auparavant vous aviez déjà écrit le code de test pour cette fonction, vous l'exécutez à nouveau et le test peut échouer car le codeur a introduit une erreur logique dans la fonction ou renvoyé quelque chose complètement différent de ce que cette fonction est censée retourner. Encore une fois sans le test en place, cette erreur pourrait être difficile à localiser car elle peut également affecter d'autres codes et passer inaperçue.
Le fait que vous ayez un programme informatique qui parcourt votre code et le teste au lieu de le faire manuellement dans le navigateur page par page permet également de gagner du temps (tests unitaires pour javascript). Disons que vous modifiez une fonction qui est utilisée par un script sur une page Web et qu'elle fonctionne très bien pour son nouvel objectif. Mais, disons aussi pour des raisons d'argument qu'il y a une autre fonction que vous avez ailleurs dans votre code qui dépend de cette fonction nouvellement modifiée pour qu'elle fonctionne correctement. Cette fonction dépendante peut maintenant cesser de fonctionner en raison des modifications que vous avez apportées à la première fonction, mais sans tests en place qui sont exécutés automatiquement par votre ordinateur, vous ne remarquerez pas qu'il y a un problème avec cette fonction jusqu'à ce qu'elle soit réellement exécutée et tu'
Pour réitérer, le fait d'avoir des tests exécutés lors du développement de votre application détectera ce type de problèmes lors du codage. Sans avoir les tests en place, vous devrez parcourir manuellement toute votre application et même alors, il peut être difficile de repérer le bogue, vous l'envoyez naïvement en production et après un certain temps, un utilisateur aimable vous envoie un rapport de bogue (qui ne sera pas aussi bon que vos messages d'erreur dans un framework de test).
C'est assez déroutant lorsque vous entendez parler du sujet pour la première fois et que vous pensez vous-même, ne teste-je pas déjà mon code? Et le code que vous avez écrit fonctionne comme il est déjà censé le faire, "pourquoi ai-je besoin d'un autre framework?" ... Oui, vous testez déjà votre code mais un ordinateur est mieux à le faire. Vous n'avez qu'à écrire suffisamment de tests pour une fonction / unité de code une fois et le reste est pris en charge par le puissant processeur au lieu de devoir vérifier manuellement que tout votre code fonctionne toujours lorsque vous effectuez une modification vers votre code.
En outre, vous n'avez pas à tester votre code à l'unité si vous ne le souhaitez pas, mais cela est payant car votre base de projet / code commence à s'agrandir à mesure que les chances d'introduire des bogues augmentent.