IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Apprendre à faire des tests unitaires en .Net Core avec XUNIT,
Un tutoriel de Nacoumblé Olivier Martial Soro

Le , par Malick

0PARTAGES

10  0 
Chers membres du club,

J'ai le plaisir de vous présenter ce tutoriel d'OlivierSoro :

Apprendre à faire des tests unitaires en .Net Core avec XUNIT
Vous entendez parler des tests unitaires, des Mocks mais vous ne savez pas concrètement comment et quand les appliquer ? Ce tutoriel a pour but de vous faire comprendre ces différents concepts et de vous montrer des cas pratiques d’utilisation à travers un mini projet .Net Core.

Prérequis : niveau débutant en C# et Visual Studio (2019 de préférence).
Bonne lecture

Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation DotNET.

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de OlivierSoro
Membre confirmé https://www.developpez.com
Le 22/11/2019 à 14:30
Bonjour,

Merci pour tes remarques pertinentes !

1. Pas besoin de TDD pour faire des tests Unitaires
Oui on n'a pas besoin de TDD pour faire des tests unitaires mais j'en parle ici parce que c'est cette méthode qui sera utilisée tout au long du tutoriel pour écrire nos tests unitaires. Je ne voulais pas qu'on apprenne juste à écrire du test unitaire mais qu'on sache comment l'utiliser dans un projet de développement d'application.
Le TDD est la méthode que j'utilise et recommande pour l'écriture des tests unitaires.

2. Partie TDD
L'exemple n'est pas faux puisque dans la méthode TDD on commence toujours par écrire un test qui échoue. C'est ce qui a été appliqué de la manière la plus simple possible. SI ma méthode retournait directement 29 ce n'etait plus du TDD que je faisais.
Concernant les deux styles de TDD ( Classique VS Mockiste) c'est vrai que je n'en parle pas et c'est clair qu'il y'a plein de points que je n'ai pas abordé dans ce tutoriel vu que c'est un tutoriel de prise en main.

3. Partie MOCK
Je ne dis pas qu'un test ne peut pas traverser plusieurs classes de notre application. La preuve je dis bien dans le tutoriel:
Dans le cas où notre code à tester a une dépendance vers un objet inaccessible ou non implémenté, il nous faut utiliser un Mock.

En gros j'ai voulu abordé trois points: les tests unitaires, la méthode TDD et les Mocks de la manière la plus simple et compréhensible possible pour un développeur qui n'est pas encore familier avec tout ça.
4  0 
Avatar de DevEric
Membre à l'essai https://www.developpez.com
Le 01/12/2019 à 14:30
C'est pas souvent que l'on trouve un tutoriel d'introduction sur les test unitaires et qui plus est en français.
Et celui ci particulièrement clair et les exemples bien choisi.
C'est donc pour moi une belle contribution , merci ++;
Ah j'espère qu'il y aura une suite avec autofixture par exemple

Au fait y en aura t' il une ?
4  0 
Avatar de OlivierSoro
Membre confirmé https://www.developpez.com
Le 04/12/2019 à 2:12
Citation Envoyé par DevEric Voir le message
C'est pas souvent que l'on trouve un tutoriel d'introduction sur les test unitaires et qui plus est en français.
Et celui ci particulièrement clair et les exemples bien choisi.
C'est donc pour moi une belle contribution , merci ++;
Ah j'espère qu'il y aura une suite avec autofixture par exemple

Au fait y en aura t' il une ?

Merci DevEric Oui je prépare une suite avec FluentAssertions, ExpectedObjects, AutoFixture, NSubstitute. Je profiterai aussi pour expliquer le pattern AAA pour prendre en compte l'ensemble des remarques que j'ai reçu.
3  0 
Avatar de DevEric
Membre à l'essai https://www.developpez.com
Le 18/03/2020 à 16:29
Très bonne suite toujours aussi bien documenté , merci beaucoup
3  0 
Avatar de MyPierre
Candidat au Club https://www.developpez.com
Le 12/01/2020 à 18:37
Bonjour,
Félicitation, trop cool...
J'ai moi aussi trouvé l'article particulièrement didactique et bien documenté.
Mais maintenant que j'ai vu qu'il y aura une suite avec ExpectedObjects, AutoFixture, NSubstitute.... j'ai vraiment hâte de la découvrir.

Sait on quand elle paraîtra ?

Merci
2  0 
Avatar de angeova
Candidat au Club https://www.developpez.com
Le 20/01/2020 à 14:23
Hello Olivier,
Très bon tutoriel, nous attendons tous la suite.
2  0 
Avatar de OrcusZ
Membre habitué https://www.developpez.com
Le 22/11/2019 à 13:48
Bonjour,

Sympas de voir un tutoriel sur les Tests Unitaires.

Malheureusement il y a beaucoup de chose à dire sur ce petit tutoriel.

1 - Pas besoin de TDD pour faire des tests Unitaires

De mon points de vue, il aurait fallu ne pas aborder TDD, mais faire une approche Test First.
TDD étant une méthode de développement, cela ne met pas en avant cette pratique.

2 - Partie TDD

- On n’explique pas les enjeux de la méthode
- les deux styles de TDD ( Classique VS Mockiste)
- On n’explique pas AAA et Red-Green-Refactor
- L'exemple est faux, la méthode aurait dû retourner 29, puis faire un nouveau test pour faire émerger l'algorithme
- Donc forcement à la fin on n’est pas expert TDD

3 - Partie MOCK

Ici l'auteur se place dans la partie Mockiste des tests.
De plus l'introduction peut amener à la réflexion qu'un test ne peux pas traversez plusieurs classes de notre application ce qui est faux. C'est même un Anti-pattern de tester chaque classe unitairement.

Un test est là pour valider un comportement et non une méthode/classe.

Pour le reste, ce sont des exemples et l'utilisation de la librairie.
Pareil les mocks sont multiples ( Stub, Mock, Fake, etc... ), d'ailleurs Mock est un abus de langage... Le faire à la main aurait permis à l'utilisateur de mieux en comprendre l'utilité.

Je sais tout de même que l'élaboration d'un tutoriel prends du temps mais c'est un sujet sur lequel il faut être précis car on entend tout et n'importe quoi
1  0 
Avatar de OrcusZ
Membre habitué https://www.developpez.com
Le 22/11/2019 à 15:03
Bonjour,

Ok pour la suite de tutoriel. Vu comme ça l'aborder est une bonne idée mais je reste persuadée que le faire en deux temps n'aurait pas posé de problème
Il faudra bien faire les liens entres les tutoriels.

Pour le point 2, je ne parle pas du red-green-refactor qui est correct (Le test échoue bien et tu as même fait un screenshot), je parle de sa résolution.
Si on veut montrer TDD dans le détail, j'aurais fait :

-> Test qui échoue
-> Un test qui s'attend à avoir 29
-> je fais retourner 29 à ma méthode
-> J'écris un nouveau test qui retourne une valeur différente
-> Je joue mes tests, oups 1 fonctionne mais pas l'autre
-> je fais l'implémentation que tu as donnée
-> je rejoue les deux tests, les deux sont verts.

Pour le point 3, je me suis peut-être mal exprimer. Je voulais dire qu'une novice en test unitaire peux le penser en lisant la phrase. Juste peut être un petit souci de tournure de phrase

En tout cas ça fait toujours plaisir de voir des articles sur les Tests
0  0 
Avatar de OlivierSoro
Membre confirmé https://www.developpez.com
Le 22/11/2019 à 15:37
Ok c'est noté ! Il n'est pas souvent evident de définir clairement le but que tu vises à atteindre lorsque tu écris un tutoriel.
Mais je prendrai en compte tes remarques pour l'écriture de mes futurs tutoriels .
0  0 
Avatar de OrcusZ
Membre habitué https://www.developpez.com
Le 22/11/2019 à 15:46
Je suis totalement d'accords. Surtout quand le sujet n'est pas purement technique .

Après il faut plus de sujet de ce genre en français et tu as bien fait de te lancer. Souvent c'est en anglais et certain terme sont difficiles à appréhender quand l'anglais n'est pas maitrisé ( merci à Google traduction ^^ ).
0  0