SlideShare une entreprise Scribd logo
1  sur  18
QC | Pratique Microsoft | 2014-06-26 
Tests unitaires en .NET avec 
FakeItEasy 
Wesley Alcoforado
2 
Sommaire 
1 Tests unitaires 
2 Qu’est-ce qu’un mock? 
3 Fake It Easy 
4 Démo 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
3 
Tests unitaires 
1 2 3 4 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
4 
Tests unitaires 
Garantir le bon fonctionnement du code 
Garantir la non régression 
Aider à suivre les bonnes pratiques de dév. 
Un test doit être: 
Indépendant 
Simple 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
5 
Qu’est-ce qu’un mock? 
1 2 3 4 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
6 
Qu’est-ce qu’un mock? 
Objet factice qui reproduit le 
comportement d’objets réels de façon 
contrôlée 
Remplace un comportement non déterministe 
> Température ambiante; l’heure. 
Simule des situations difficiles à reproduire 
> Erreur de réseau 
Initialisation longue 
> Objet qui crée une base de données 
L’objet réel n’existe pas encore 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
7 
Fake It Easy 
1 2 3 4 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
8 
Fake It Easy 
Framework de creation d’objets factices 
Interface fluide 
Compatible avec C# et VB.NET 
Open source (https://github.com/FakeItEasy/FakeItEasy) 
Disponible via Nuget 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
9 
Types acceptés 
Interfaces 
Classes qui ont au moins un constructeur 
accessible par FakeItEasy 
Pas de classes sealed 
Pas de classes statiques 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
Les membres statiques, incluant les extension 
methods, ne sont pas supportés. 
10 
Qui peut être remplacé? 
Propriétés et méthodes 
Virtuelles 
Abstraites 
Définies dans une interface 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
11 
Instanciation 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
12 
Configuration du comportement 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
13 
Types d’assertions 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
14 
Démo 
1 2 3 4 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
15 
Example de couche affaire 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
16 
Test unitaire (1) 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
17 
Test unitaire (2) 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY
18 
Questions? 
TESTS UNITAIRES EN .NET AVEC FAKEITEASY

Contenu connexe

En vedette

Legislacion comercio electronico_1999_ley_527
Legislacion comercio electronico_1999_ley_527Legislacion comercio electronico_1999_ley_527
Legislacion comercio electronico_1999_ley_527JOHN BONILLA
 
Journée contributive - Conseil National Numérique
Journée contributive - Conseil National NumériqueJournée contributive - Conseil National Numérique
Journée contributive - Conseil National NumériqueVincent Barberot
 
Mirelis - Présentation du promoteur
Mirelis - Présentation du promoteurMirelis - Présentation du promoteur
Mirelis - Présentation du promoteurLouis-Alexandre Cazal
 
Diseño una situación de aprendizaje con base en los planteamientos de la didá...
Diseño una situación de aprendizaje con base en los planteamientos de la didá...Diseño una situación de aprendizaje con base en los planteamientos de la didá...
Diseño una situación de aprendizaje con base en los planteamientos de la didá...moonchris
 
Réseaux sociaux : nature et conséquences pour les forces armées
Réseaux sociaux : nature et conséquences pour les forces arméesRéseaux sociaux : nature et conséquences pour les forces armées
Réseaux sociaux : nature et conséquences pour les forces arméesAgence Double Numérique
 
Baobaz SES - La semaine sociale 270212
Baobaz SES - La semaine sociale 270212Baobaz SES - La semaine sociale 270212
Baobaz SES - La semaine sociale 270212armstrong
 
Nuevo análisis de la doctrina judicial sobre los expedientes de regulación de...
Nuevo análisis de la doctrina judicial sobre los expedientes de regulación de...Nuevo análisis de la doctrina judicial sobre los expedientes de regulación de...
Nuevo análisis de la doctrina judicial sobre los expedientes de regulación de...Universidad Autónoma de Barcelona
 
Icc Revue Echanges Sept 2010 Incoterms Complet
Icc Revue Echanges Sept 2010 Incoterms CompletIcc Revue Echanges Sept 2010 Incoterms Complet
Icc Revue Echanges Sept 2010 Incoterms CompletRenaud Favier
 
Journal des journaux
Journal des journauxJournal des journaux
Journal des journauxziad maalouf
 
Informatica forense 2015
Informatica forense 2015Informatica forense 2015
Informatica forense 2015Geraldy Castro
 
Mirelis - Présentation de la Ville de Montréal
Mirelis - Présentation de la Ville de MontréalMirelis - Présentation de la Ville de Montréal
Mirelis - Présentation de la Ville de MontréalLouis-Alexandre Cazal
 
Texto comparado de la normativa vigente y del Proyecto de Ley por la que se m...
Texto comparado de la normativa vigente y del Proyecto de Ley por la que se m...Texto comparado de la normativa vigente y del Proyecto de Ley por la que se m...
Texto comparado de la normativa vigente y del Proyecto de Ley por la que se m...Universidad Autónoma de Barcelona
 
Présentation WeCan.Fund
Présentation WeCan.FundPrésentation WeCan.Fund
Présentation WeCan.FundWeCan.Fund
 

En vedette (20)

Legislacion comercio electronico_1999_ley_527
Legislacion comercio electronico_1999_ley_527Legislacion comercio electronico_1999_ley_527
Legislacion comercio electronico_1999_ley_527
 
Dia del patrimonio
Dia del patrimonioDia del patrimonio
Dia del patrimonio
 
Journée contributive - Conseil National Numérique
Journée contributive - Conseil National NumériqueJournée contributive - Conseil National Numérique
Journée contributive - Conseil National Numérique
 
Pub selon les_pays
Pub selon les_paysPub selon les_pays
Pub selon les_pays
 
Le jour ou les tpe
Le jour ou les tpeLe jour ou les tpe
Le jour ou les tpe
 
Mirelis - Présentation du promoteur
Mirelis - Présentation du promoteurMirelis - Présentation du promoteur
Mirelis - Présentation du promoteur
 
Diseño una situación de aprendizaje con base en los planteamientos de la didá...
Diseño una situación de aprendizaje con base en los planteamientos de la didá...Diseño una situación de aprendizaje con base en los planteamientos de la didá...
Diseño una situación de aprendizaje con base en los planteamientos de la didá...
 
Le jeu video
Le jeu videoLe jeu video
Le jeu video
 
Cibercorresponsales Conecta Joven
Cibercorresponsales Conecta JovenCibercorresponsales Conecta Joven
Cibercorresponsales Conecta Joven
 
Réseaux sociaux : nature et conséquences pour les forces armées
Réseaux sociaux : nature et conséquences pour les forces arméesRéseaux sociaux : nature et conséquences pour les forces armées
Réseaux sociaux : nature et conséquences pour les forces armées
 
Baobaz SES - La semaine sociale 270212
Baobaz SES - La semaine sociale 270212Baobaz SES - La semaine sociale 270212
Baobaz SES - La semaine sociale 270212
 
Nuevo análisis de la doctrina judicial sobre los expedientes de regulación de...
Nuevo análisis de la doctrina judicial sobre los expedientes de regulación de...Nuevo análisis de la doctrina judicial sobre los expedientes de regulación de...
Nuevo análisis de la doctrina judicial sobre los expedientes de regulación de...
 
Proceso
ProcesoProceso
Proceso
 
Icc Revue Echanges Sept 2010 Incoterms Complet
Icc Revue Echanges Sept 2010 Incoterms CompletIcc Revue Echanges Sept 2010 Incoterms Complet
Icc Revue Echanges Sept 2010 Incoterms Complet
 
Journal des journaux
Journal des journauxJournal des journaux
Journal des journaux
 
Mre presentación del proyecto swep 18-11-2010
Mre   presentación del proyecto swep 18-11-2010Mre   presentación del proyecto swep 18-11-2010
Mre presentación del proyecto swep 18-11-2010
 
Informatica forense 2015
Informatica forense 2015Informatica forense 2015
Informatica forense 2015
 
Mirelis - Présentation de la Ville de Montréal
Mirelis - Présentation de la Ville de MontréalMirelis - Présentation de la Ville de Montréal
Mirelis - Présentation de la Ville de Montréal
 
Texto comparado de la normativa vigente y del Proyecto de Ley por la que se m...
Texto comparado de la normativa vigente y del Proyecto de Ley por la que se m...Texto comparado de la normativa vigente y del Proyecto de Ley por la que se m...
Texto comparado de la normativa vigente y del Proyecto de Ley por la que se m...
 
Présentation WeCan.Fund
Présentation WeCan.FundPrésentation WeCan.Fund
Présentation WeCan.Fund
 

Similaire à Tests unitaires avec FakeItEasy

Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaHeads France
 
CocoaHeads Rennes #4 : Tests automatisés sur iOS
CocoaHeads Rennes #4 : Tests automatisés sur iOSCocoaHeads Rennes #4 : Tests automatisés sur iOS
CocoaHeads Rennes #4 : Tests automatisés sur iOSCocoaHeadsRNS
 
L'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoringL'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoringMSDEVMTL
 
L'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoringL'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoringPascal Laurin
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcoreMSDEVMTL
 
CocoaHeads Toulouse - Xcode et les tests - Epitez
CocoaHeads Toulouse - Xcode et les tests - EpitezCocoaHeads Toulouse - Xcode et les tests - Epitez
CocoaHeads Toulouse - Xcode et les tests - EpitezCocoaHeads France
 
AgileTour Toulouse 2012 : clean code en pratique
AgileTour Toulouse 2012 : clean code en pratiqueAgileTour Toulouse 2012 : clean code en pratique
AgileTour Toulouse 2012 : clean code en pratiqueAgile Toulouse
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introductionlaurent bristiel
 
Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...
Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...
Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...Guillaume Saint Etienne
 
7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitaires7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitairesPascal Laurin
 
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013Julien Jakubowski
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyFrançois Petitit
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowMathias Kluba
 
JavaScript Devoxx France 2013
JavaScript Devoxx France 2013JavaScript Devoxx France 2013
JavaScript Devoxx France 2013Romain Linsolas
 

Similaire à Tests unitaires avec FakeItEasy (20)

Cocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitairesCocoaheads Paris Nombembre Test unitaires
Cocoaheads Paris Nombembre Test unitaires
 
CocoaHeads Rennes #4 : Tests automatisés sur iOS
CocoaHeads Rennes #4 : Tests automatisés sur iOSCocoaHeads Rennes #4 : Tests automatisés sur iOS
CocoaHeads Rennes #4 : Tests automatisés sur iOS
 
L'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoringL'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoring
 
L'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoringL'amélioration des tests unitaires par le refactoring
L'amélioration des tests unitaires par le refactoring
 
Common features in webapi aspnetcore
Common features in webapi aspnetcoreCommon features in webapi aspnetcore
Common features in webapi aspnetcore
 
CocoaHeads Toulouse - Xcode et les tests - Epitez
CocoaHeads Toulouse - Xcode et les tests - EpitezCocoaHeads Toulouse - Xcode et les tests - Epitez
CocoaHeads Toulouse - Xcode et les tests - Epitez
 
AgileTour Toulouse 2012 : clean code en pratique
AgileTour Toulouse 2012 : clean code en pratiqueAgileTour Toulouse 2012 : clean code en pratique
AgileTour Toulouse 2012 : clean code en pratique
 
Clean code en pratique
Clean code en pratiqueClean code en pratique
Clean code en pratique
 
Mockito Chti JUG
Mockito Chti JUGMockito Chti JUG
Mockito Chti JUG
 
Bbl sur les tests
Bbl sur les testsBbl sur les tests
Bbl sur les tests
 
Flex Unit Testing
Flex Unit TestingFlex Unit Testing
Flex Unit Testing
 
Robot Framework Introduction
Robot Framework IntroductionRobot Framework Introduction
Robot Framework Introduction
 
Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...
Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...
Tout ce que vous avez voulu savoir sur les Doublures sans jamais oser le dema...
 
7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitaires7 astuces pour améliorer vos tests unitaires
7 astuces pour améliorer vos tests unitaires
 
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
Du JavaScript propre ? Challenge accepted ! @Devoxx France 2013
 
Les tests-unitaires-en-java
Les tests-unitaires-en-javaLes tests-unitaires-en-java
Les tests-unitaires-en-java
 
TDD avec atoum
TDD avec atoumTDD avec atoum
TDD avec atoum
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
 
ALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - SpecflowALT.Net Juin 2012 - Specflow
ALT.Net Juin 2012 - Specflow
 
JavaScript Devoxx France 2013
JavaScript Devoxx France 2013JavaScript Devoxx France 2013
JavaScript Devoxx France 2013
 

Tests unitaires avec FakeItEasy

  • 1. QC | Pratique Microsoft | 2014-06-26 Tests unitaires en .NET avec FakeItEasy Wesley Alcoforado
  • 2. 2 Sommaire 1 Tests unitaires 2 Qu’est-ce qu’un mock? 3 Fake It Easy 4 Démo TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 3. 3 Tests unitaires 1 2 3 4 TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 4. 4 Tests unitaires Garantir le bon fonctionnement du code Garantir la non régression Aider à suivre les bonnes pratiques de dév. Un test doit être: Indépendant Simple TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 5. 5 Qu’est-ce qu’un mock? 1 2 3 4 TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 6. 6 Qu’est-ce qu’un mock? Objet factice qui reproduit le comportement d’objets réels de façon contrôlée Remplace un comportement non déterministe > Température ambiante; l’heure. Simule des situations difficiles à reproduire > Erreur de réseau Initialisation longue > Objet qui crée une base de données L’objet réel n’existe pas encore TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 7. 7 Fake It Easy 1 2 3 4 TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 8. 8 Fake It Easy Framework de creation d’objets factices Interface fluide Compatible avec C# et VB.NET Open source (https://github.com/FakeItEasy/FakeItEasy) Disponible via Nuget TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 9. 9 Types acceptés Interfaces Classes qui ont au moins un constructeur accessible par FakeItEasy Pas de classes sealed Pas de classes statiques TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 10. Les membres statiques, incluant les extension methods, ne sont pas supportés. 10 Qui peut être remplacé? Propriétés et méthodes Virtuelles Abstraites Définies dans une interface TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 11. 11 Instanciation TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 12. 12 Configuration du comportement TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 13. 13 Types d’assertions TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 14. 14 Démo 1 2 3 4 TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 15. 15 Example de couche affaire TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 16. 16 Test unitaire (1) TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 17. 17 Test unitaire (2) TESTS UNITAIRES EN .NET AVEC FAKEITEASY
  • 18. 18 Questions? TESTS UNITAIRES EN .NET AVEC FAKEITEASY