- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
- Formations
- conversion_path Parcours & Formations
- science Projets
- data_object Exercices de code
- psychology Exercices IA
- quiz Quiz
- Articles
- rss_feed Blog
- sort_by_alpha Glossaire
- menu_book Guides
- help_center FAQ
- media_link Ressources
- Communauté
- groups La communauté
- forum Questions
- live_tv Mentorats
- science Projets mensuels
Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte person00:00:00 :Dans cette partie, on va créer notre premier test pour vérifier que la fonction add retourne bien ce qui est attendu.Dans mon fichier test.py que j'ai créé directement en dessous de mon dossier test unitaire, à côté du fichier main.py qui contient cette fonction,
00:00:14 :je vais utiliser la bibliothèque unitest pour créer une classe qui va me permettre de gérer tous les tests de ce fichier main.py.Dans ce cas-ci, on n'a qu'une fonction, mais si on avait plusieurs fonctions, on pourrait toutes les mettre à l'intérieur de la même classe.
00:00:37 :Donc on va créer une autre classe qu'on va appeler nous testcalculatrice, et cette classe va hériter de testcase.A l'intérieur de cette classe, on va créer une fonction qui va commencer par le mot test.
00:01:05 :Donc là ce n'est pas uniquement dans PyCharm, c'est vraiment avec le module unitest.Si vous ne mettez pas le mot test devant, et bien cette fonction ne sera pas considérée comme une fonction qui doit être exécutée quand on va exécuter notre fichier de test.
00:01:17 :Donc là je vais mettre par exemple test add to numbers.C'est très important de bien nommer les fonctions de test.Ce n'est pas rare de voir des fonctions qui sont très très longues, mais qui décrivent précisément ce qui est testé.
00:01:42 :Si on met test add to numbers, là c'est déjà un peu plus explicite.On pourra même préciser encore notre test en disant par exemple test add to positive numbers, pour deux nombres positifs.
00:01:52 :Et donc maintenant à l'intérieur de cette fonction, on va créer notre premier test.Pour ça on va utiliser self, puisqu'on va utiliser tout ce qui est contenu à l'intérieur de cette classe test case.
00:02:01 :Et à l'intérieur de la classe test case, on a ce qu'on appelle des assertions, que vous allez retrouver avec le mot assert.Et vous voyez qu'on en a plein ici qui sont disponibles, qui sont assez explicites.
00:02:11 :On a assert equal, assert in, assert false par exemple.Et donc là en fait on va vérifier quelque chose.Donc on va vérifier par exemple une égalité.
00:02:29 :Donc là on va vérifier l'égalité entre ces deux éléments.Donc là dans ce cas-ci notre test ne fonctionnera pas, puisque 1 n'est pas égal à 2.
00:02:36 :Donc si je mets par contre 1 et 1, là on a un test qui fonctionne, puisque 1 est bien égal à 1.Et vous allez voir qu'on a donc plein de façons de tester notre code avec d'autres assertions, comme par exemple assert in.
00:02:47 :Là on va vérifier, comme l'indique PyCharm ici, si un membre est à l'intérieur d'un container.Et le container c'est un itérable.Donc là par exemple on va vérifier si 1, donc si le nombre 1, est contenu à l'intérieur de la liste 1, 2 et 3.
00:03:00 :Et donc là c'est le cas, donc notre test fonctionnerait.Si par contre j'enlève le 1 ici, et bien 1 n'est pas contenu dans la liste 2 et 3, donc dans cet itérable.
00:03:09 :Et donc notre test ne fonctionnerait pas.Donc vous voyez au final c'est assez simple.Ça fait un peu peur au début quand on voit toutes les assertions.
00:03:15 :On se dit oulala il y a beaucoup de choses, c'est compliqué, qu'est-ce qu'il faut utiliser ?Rassurez-vous, la plupart du temps on va tester des égalités.
00:03:21 :Donc est-ce que notre fonction, quand on lui envoie un certain nombre de paramètres, retourne bien ce qui est attendu ?Donc est-ce que le retour de la fonction est égal à quelque chose ?
00:03:29 :Ou est-ce que le retour de la fonction est contenu dans quelque chose ?Dans le cas où on a une fonction qui pourrait retourner différentes choses,on va pouvoir tester différents résultats à l'intérieur d'un itérable comme ceci, et avec l'assertion assertIn.
00:03:40 :Donc là c'est vraiment avec l'expérience que vous allez vous rendre compte dans quel cas de figure il faut utiliser quelle assertion.Dans ce cas-ci on va rester tout simplement avec le assertEqual,et on va tester que notre fonction retourne bien ce qu'on attend.
00:03:53 :Donc on va importer notre fonction dans notre fichier test, on va dire from main import add,donc qui est notre fonction add à l'intérieur de ce fichier,et on va vérifier si quand on appelle notre fonction avec par exemple 5 et 10, on a bien 15 qui nous est retourné.
00:04:08 :Donc vous voyez c'est pas plus compliqué que ça, on vérifie l'égalité,donc on vérifie si la fonction ici qu'on appelle avec 5 et 10 nous retourne bien le nombre 15.
00:04:17 :Et voilà, donc vous avez écrit votre premier test.Donc dans ce cas-ci même sans directement exécuter le test, on peut penser qu'il va fonctionner.Si on va voir ici, on envoie deux paramètres et on retourne l'addition de ces deux paramètres,donc dans ce cas-ci on envoie 5 et 10, donc là notre test fonctionnerait.
00:04:32 :Par contre si quelqu'un s'amuse à changer notre fonction et à mettre par exemple a moins b,et bien là notre test ne fonctionnerait plus puisque 5 moins 10 ne serait pas égal à 15.
00:04:41 :Et là on teste bien l'égalité avec assertEqual.Donc voilà pour notre premier test, vous voyez que c'est pas très compliqué,il y a plusieurs choses quand même à retenir sur lesquelles il faut faire bien attention.
00:04:51 :Déjà donc créer une classe qui va hériter de TestCase,comme ça on va avoir accès directement à assertEqual.Et ensuite créer des fonctions qui commencent par le mot testpour s'assurer qu'elles soient reconnues comme des fonctions qu'il va falloir tester.
00:05:04 :Tout ce qu'on a fait ici, vous remarquerez qu'il est possible de le faire très rapidement avec PyCharm.Donc là je vais même supprimer ce fichier,donc je fais un clic droit et je sélectionne delete ici pour supprimer le fichier.
00:05:15 :On peut faire un clic droit sur notre fonctionet directement générer le fichier de test avec la classe et la fonction associéeen cliquant ici sur generate et en sélectionnant test.
00:05:25 :Donc là il va nous demander quelques petites précisions,donc on va spécifier qu'on veut bien créer notre test à l'intérieur du dossier test unitaire.Il nous demande ici de spécifier le nom du fichier,dans ce cas-ci je vais mettre juste test.py,
00:05:37 :le nom de la classe, on va l'appeler testCalculatrice comme on l'avait fait précédemment.Et là vous allez avoir toutes les fonctions contenues dans votre fichier,dans ce cas-ci on n'en a qu'une mais si on en avait plusieurs,on pourrait spécifier pour quelle fonction on souhaite créer ou non des tests.
00:05:51 :Donc on pourrait décocher ici les fonctions qu'on souhaite tester,dans ce cas-ci j'ai juste la fonction addet vous voyez qu'automatiquement il ajoute le test devant le nom de la fonction.
00:05:59 :Donc je valide en cliquant sur OKet automatiquement vous voyez qu'on a l'import qui est fait,la classe qui est créée, la fonction qui est crééeet par défaut ici on a un self.fail
00:06:08 :qui va donc, comme vous vous en doutez,automatiquement faire échouer le test.Donc là il nous suffirait de refaire notre test avec assertEqual,de spécifier qu'on veut tester 5 et 10 et que c'est égal à 15.
00:06:19 :Là on va importer notre fonction très rapidement,encore une fois en utilisant PyCharm,en cliquant sur la petite ampoule ici,en cliquant sur import this nameet en sélectionnant notre fonction add à l'intérieur du fichier main.
00:06:30 :Et automatiquement l'import est fait.Donc vous voyez que là il ne nous reste plus grand chose à faireà part créer le test, peut-être préciser ici le nom de la fonctionen disant test add to numbers,comme on l'avait fait précédemment.
00:06:41 :Mais vous voyez que très rapidement avec PyCharm,en faisant un clic droit generate,on va pouvoir générer notre fichier de test,la classe et toutes les fonctions.
00:06:50 :Dans ce cas-ci on n'a qu'une seule fonction,donc c'est assez rapide à faire à la main,mais imaginez que vous ayez par exemple 50 fichiersqui ont chacun 50 fonctions,et bien vous pouvez avec un seul cliccréer tous les fichiers, toutes les classeset toutes les fonctions associées aux 50 fichiers
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.