Bonjour,
Je développe actuellement un site avec une architecture MVC et j'ai voulus m'interraiser au Test Unitaire car c'est un projet assez sérieux.
Le soucis c'est que je n'ai pas compris l'avantage des test unitaire car si j'ai compris le test unitaire vas tester nos fonction sauf par exemple j'ai besoin que dans mon site quand le client click sur un bouton affiche moi le prénom de mes amis je vais donc créer ma fonction dans mon model puis je vais l'appelais donc en quelque sorte je la test déjà donc le test unitaire est inutile dans ce cas ? Je n'arrive donc pas a voir dans quelle cas il on important.

Merci de m'éclairer :)

3 réponses


quenti77
Réponse acceptée

Salut,
Il y a plusieurs types de test que l'on peut faire tout au long du développement et pour te les présenter, on va partir sur un exemple simple, l'inscription d'un utilisateur. Tu aura donc une page avec un formulaire pour t'inscrire et quand l'utilisateur va cliquer sur le bouton de validation ça doit vérifier que l'e-mail n'existe pas par exemple et si tout est bon ça doit l'inscrire et lui envoyer un mail.

Au niveau des tests unitaires, tu vas tester que quand tu passes le tableau à ton model il insère bien les bonnes données en base. Si tu as fait une fonction qui check l'e-mail, tu vas tester que si tu passes abc@def.com ça te retourne bien true et si tu donnes abc@def ça te retourne false. On test donc unitaire chaque fonction.

Ensuite, vient les test d'intégration ou en gros, tu vas plutôt tester ta route et dire si j'envoie en POST sur /register avec ces données-là ça doit faire ça, ça et ça.

Enfin, il y a les tests fonctionnels ou en gros, on va tester l'interface comme un vrai client. Sur laravel avec dusk ça t'ouvre en gros un chromium (chrome version open source) qui sera comme un navigateur et la, tu diras, quand je mets dans le champs e-mail tel e-mail, le champs password tel mot de passe et que je clique sur le bouton, je dois attendre d'être redirigé et je devrais atterrir sur /login avec le message dans une div qui aura écrit "Merci de confirmer votre e-mail".

Donc, oui, les tests unitaires ne servent pas à tous les cas, mais il faut en faire dès que ça devient un peu complexe comme par exemple supprimé un commentaire doit bien supprimer tous les commentaires enfant de ce dernier.

Oui... Tu as raison, dans un tel cas aussi basique, tu vas peu (voire pas) apprécier les TU (Tests Unitaires)...

... Encore que:

Dans la suite de ton développement, il est possible que tu changes un jour quelque chose (Par exemple dans ton model, et qui modifiera le résultat de ta méthode getPrenom(){})... Et qu'un jour, involontairement, cette fonction ne répondra plus à ce que tu en attendais au départ...

L'intérêt ici des TU, sera que cette fonctionnalité originale scontinuera à être testée, afin de s'assurer qu'elle reste conforme à ce que tu en attendais au départ :-) !

Pense que, avec le temps, on fait se succéder plusieurs TU...

Bref, on vérifiera ainsi, là, l'intégrité de ton code au fil du temps :-) !

Merci a vous deux pour vos réponse qui m'on bien éclairer :)