SlideShare une entreprise Scribd logo
Mocks Vs Stubs

Emilien Pecoul
@ouarzy

Quelle genre de testeur êtes vous?
Mocks aren’t Stubs

http://martinfowler.com/articles/mocksArentStubs.html
Vocabulaire

http://xunitpatterns.com/
Vocabulaire
• Test Double : objet étant utilisé à la place d’un autre dans le but de
tester
• Dummy : est passé en paramètre mais jamais effectivement utilisé
• Fake : a une implémentation fonctionnelle simplifiée pour les tests,
qui ne conviendra pas en production (base de données de tests en
mémoire par exemple)
• Stubs : fourni des réponses prédictibles aux appels durant le test. Ce
qui n’est pas testé ne sera pas implémenté. Un stub peut également
enregistrer des informations tel que la liste des messages envoyés
pour un messager.
• Mocks : est un objet préprogrammé avec des attentes sur les appels
qu’il est censé recevoir
Mock Vs Stub
Mock Vs Stub
Comment Vs Quoi

Comportement Vs Etat

London style Vs Chicago style
Mock

Stub

Initialisation

Simple et
indépendante

Complexe si objet de
haut niveau

Isolation

Bug = 1 seul test
rouge

Bug = plusieurs tests
rouges

Couplage

Fortement couplé à
l’implémentation

Faiblement couplé à
l’implémentation

Design (TDD)

Méthodes qui
agissent sur un objet

Méthodes qui
retournent des valeurs

POO

« Tell don’t Ask »,
Demeter

Parfois retourne valeur
seulement pour test
Mock

BDD = TDD avec mocks
Mock => Comportement => Behaviour Driven Development
Alors quel genre de testeur êtes vous?
CQRS

• Mocks for commands
• Stubs for queries

Mark Seeman

=>Valider une Query avec un Mock est compliqué!

http://blog.ploeh.dk/2013/10/23/mocks-for-commands-stubs-for-queries/
Merci!
2003

2013
Emilien Pecoul
@ouarzy

Questions?

Contenu connexe

En vedette

Zinedine zidane
Zinedine zidaneZinedine zidane
Zinedine zidanefrmoliere
 
Vovabulaire expliqué
Vovabulaire expliquéVovabulaire expliqué
Vovabulaire expliqué
frmoliere
 
Trabajo eli, mela y paula
Trabajo eli, mela y paulaTrabajo eli, mela y paula
Trabajo eli, mela y paulafrmoliere
 
Trabajo fránces
Trabajo fráncesTrabajo fránces
Trabajo fráncesfrmoliere
 
Psychic installation interactive
Psychic installation interactivePsychic installation interactive
Psychic installation interactiveYoussri Abdou
 
Stratégies contre les coulées de boue à Ottignies-LLN
Stratégies contre les coulées de boue à Ottignies-LLNStratégies contre les coulées de boue à Ottignies-LLN
Stratégies contre les coulées de boue à Ottignies-LLN
lavenir
 
Lire un site internet et s’y repérer
Lire un site internet et s’y repérerLire un site internet et s’y repérer
Lire un site internet et s’y repérerMmeCapron
 
La recherche d'Arianne
La recherche d'ArianneLa recherche d'Arianne
La recherche d'Arianne
Sylvianne Parent
 
Isaac
IsaacIsaac
Romain duris
Romain durisRomain duris
Romain durisfrmoliere
 
Raphael varane
Raphael varaneRaphael varane
Raphael varanefrmoliere
 
Nfst rps3 manol_fr
Nfst rps3 manol_frNfst rps3 manol_fr
Nfst rps3 manol_fr
Jean Sena
 

En vedette (16)

Zinedine zidane
Zinedine zidaneZinedine zidane
Zinedine zidane
 
Muffins
MuffinsMuffins
Muffins
 
T.l.r.
T.l.r.T.l.r.
T.l.r.
 
Vovabulaire expliqué
Vovabulaire expliquéVovabulaire expliqué
Vovabulaire expliqué
 
Trabajo eli, mela y paula
Trabajo eli, mela y paulaTrabajo eli, mela y paula
Trabajo eli, mela y paula
 
Trabajo fránces
Trabajo fráncesTrabajo fránces
Trabajo fránces
 
Psychic installation interactive
Psychic installation interactivePsychic installation interactive
Psychic installation interactive
 
Stratégies contre les coulées de boue à Ottignies-LLN
Stratégies contre les coulées de boue à Ottignies-LLNStratégies contre les coulées de boue à Ottignies-LLN
Stratégies contre les coulées de boue à Ottignies-LLN
 
Lire un site internet et s’y repérer
Lire un site internet et s’y repérerLire un site internet et s’y repérer
Lire un site internet et s’y repérer
 
Plant
PlantPlant
Plant
 
David belle
David belleDavid belle
David belle
 
La recherche d'Arianne
La recherche d'ArianneLa recherche d'Arianne
La recherche d'Arianne
 
Isaac
IsaacIsaac
Isaac
 
Romain duris
Romain durisRomain duris
Romain duris
 
Raphael varane
Raphael varaneRaphael varane
Raphael varane
 
Nfst rps3 manol_fr
Nfst rps3 manol_frNfst rps3 manol_fr
Nfst rps3 manol_fr
 

Plus de Emilien Pecoul

Lancer sa carrière en Freelance
Lancer sa carrière en FreelanceLancer sa carrière en Freelance
Lancer sa carrière en Freelance
Emilien Pecoul
 
Consultant: la vie de freelance est elle faite pour moi ?
Consultant: la vie de freelance est elle faite pour moi ?Consultant: la vie de freelance est elle faite pour moi ?
Consultant: la vie de freelance est elle faite pour moi ?
Emilien Pecoul
 
Event Modeling by Example
Event Modeling by ExampleEvent Modeling by Example
Event Modeling by Example
Emilien Pecoul
 
Daily ddd
Daily dddDaily ddd
Daily ddd
Emilien Pecoul
 
Developer entropy
Developer entropyDeveloper entropy
Developer entropy
Emilien Pecoul
 
The software evolution hasn't happened yet
The software evolution hasn't happened yetThe software evolution hasn't happened yet
The software evolution hasn't happened yet
Emilien Pecoul
 
Université EventSourcing CQRS Devoxx fr 2017
Université EventSourcing CQRS Devoxx fr 2017Université EventSourcing CQRS Devoxx fr 2017
Université EventSourcing CQRS Devoxx fr 2017
Emilien Pecoul
 
Event storming
Event stormingEvent storming
Event storming
Emilien Pecoul
 
Pourquoi les evenements sont importants
Pourquoi les evenements sont importantsPourquoi les evenements sont importants
Pourquoi les evenements sont importants
Emilien Pecoul
 
Code retreat
Code retreatCode retreat
Code retreat
Emilien Pecoul
 

Plus de Emilien Pecoul (11)

Lancer sa carrière en Freelance
Lancer sa carrière en FreelanceLancer sa carrière en Freelance
Lancer sa carrière en Freelance
 
Consultant: la vie de freelance est elle faite pour moi ?
Consultant: la vie de freelance est elle faite pour moi ?Consultant: la vie de freelance est elle faite pour moi ?
Consultant: la vie de freelance est elle faite pour moi ?
 
Event Modeling by Example
Event Modeling by ExampleEvent Modeling by Example
Event Modeling by Example
 
Daily ddd
Daily dddDaily ddd
Daily ddd
 
Developer entropy
Developer entropyDeveloper entropy
Developer entropy
 
The software evolution hasn't happened yet
The software evolution hasn't happened yetThe software evolution hasn't happened yet
The software evolution hasn't happened yet
 
Université EventSourcing CQRS Devoxx fr 2017
Université EventSourcing CQRS Devoxx fr 2017Université EventSourcing CQRS Devoxx fr 2017
Université EventSourcing CQRS Devoxx fr 2017
 
Event storming
Event stormingEvent storming
Event storming
 
Pourquoi les evenements sont importants
Pourquoi les evenements sont importantsPourquoi les evenements sont importants
Pourquoi les evenements sont importants
 
Code retreat
Code retreatCode retreat
Code retreat
 
Mieux secomprendrebdd
Mieux secomprendrebddMieux secomprendrebdd
Mieux secomprendrebdd
 

Dernier

Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
OCTO Technology
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
Université de Franche-Comté
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Laurent Speyser
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
UNITECBordeaux
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
Horgix
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
abderrahimbourimi
 

Dernier (6)

Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
 
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'universitéDe l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
De l'IA comme plagiat à la rédaction d'une « charte IA » à l'université
 
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)
 
Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024Le support de présentation des Signaux 2024
Le support de présentation des Signaux 2024
 
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...
 
Les écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptxLes écrans informatiques au fil du temps.pptx
Les écrans informatiques au fil du temps.pptx
 

Mocks vs stubs