SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
TDD coté Front/JS
Geek Time - Juillet 2017
Mouhcine LAHSSAINI
Consultant - OLBATI
OLBATI - Geek Time - Juillet 2017
TDD coté Front/JS
●C'est quoi le TDD ?
●Tests list
●Fake it, triangulate, obvious implementation
● Refactoring
●Données de test
●Mock et Stub
●Demo
●Conclusion
!2
OLBATI - Geek Time -Juillet 2017
Le cycle de TDD
!3
Ecrire un test
et vérifier qu’il
ne passe pas
Ecrire le code
le plus simple
qui fasse passer
le test
Supprimer les
répétitions,
améliorer la
lisiblité
OLBATI - Geek Time -Juillet 2017 !4
OLBATI - Geek Time - Juillet 2017
• Que devriez-vous tester?
– Lister tous les tests.
– Ajouter des tests suite au nouvelles idées.
!5
Que devriez-vous tester? 

Avant de commencer, faites une liste de tous les tests que vous aurez à écrire.

Pendant la session, lorsqu’une idée arrive, ajoutez un test à votre liste et continuez de programmer.
OLBATI - Geek Time - Juillet 2017
Pattern: Fake it ‘til you make it
●Vous avez écrit un test.
●Vous n’avez pas en tête une implémentation
simple:
• Dans le code de production, faite passer le test
en renvoyant la valeur attendue par le test
!6
OLBATI - Geek Time - Juillet 2017
Pattern: Triangulate
●Un premier test grâce à un Fake It.
●Vous souhaitez avancer pas à pas:
•Ecrivez un second test
•Ecrivez le code le plus simple qui fasse passer ce
test sans casser le premier
!7
OLBATI - Geek Time -Janvier 2017
Pattern: Obvious Implementation
•Ecrivez un test simple
•Faite passer le test en écrivant
l’implémentation évidente
!8
OLBATI - Geek Time - Juillet 2017
Refactoring
●C’est une technique de restructuration du code existant:
modifier sa structure sans changer son comportement
externe
●Ensemble de petites modifications dans le but d’améliorer
le code
●Le système se doit de toujours fonctionner suite à chaque
refactoring. Eviter les régressions
!9
Quoi ?
OLBATI - Geek Time - Juillet 2017
Refactoring
●Améliorer la structure du logiciel
●Rendre le code plus lisible et maintenable
●Faciliter les futurs changements
●Plus de flexibilité
●Augmenter la réutilisabilité
●Faciliter la recherche de bugs
!10
Pourquoi ?
OLBATI - Geek Time - Juillet 2017
Données de test
●Quelles données utiliser pour un test?
•Utilisez des données qui rendent le test facile à
lire et à suivre.
!11
OLBATI - Geek Time - Juillet 2017
Mock et Stub
●Stub: fournir un résultat prédéfini a chaque fois
la fonction est appelée
●Mock: est un espion sur un objet
!12
OLBATI - Geek Time - Juillet 2017
FIRST
• First: le test est écrit en premier
• Independent: le test s’exécute indépendamment des autres
• Repeatable: le test produit le même résultat à chaque appel
• Simple: le test met en œuvre le minimum de données
• self-Testing: le test est automatisé
!13
OLBATI - Geek Time - Juillet 2017
DEMO
!14
OLBATI - Geek Time - Juillet 2017
Conclusion
●Passer plus de temps à penser aux tests que à la
recherche des bugs dans notre code
●Le TDD est un support indispensable du refactoring
de code
!15
OLBATI - Geek Time - Juillet 2017 !16
Thanks!
Any questions?
mouhcine.lahssaini@olbati.com

Contenu connexe

Similaire à Geek Time Juillet 2017 : TDD coté Front/JS

Tester votre libido Agile
Tester votre libido AgileTester votre libido Agile
Tester votre libido Agile
Cellenza
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
French Scrum User Group
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !
Lucian Precup
 

Similaire à Geek Time Juillet 2017 : TDD coté Front/JS (20)

Grosjean Agile User Experience XP DAY France 2009
Grosjean Agile User Experience XP DAY France 2009Grosjean Agile User Experience XP DAY France 2009
Grosjean Agile User Experience XP DAY France 2009
 
Behaviour Driven Development chez Jouve ITS - Agile Laval 2014
Behaviour Driven Development chez Jouve ITS - Agile Laval 2014Behaviour Driven Development chez Jouve ITS - Agile Laval 2014
Behaviour Driven Development chez Jouve ITS - Agile Laval 2014
 
#4 pratiques techniques
#4 pratiques techniques#4 pratiques techniques
#4 pratiques techniques
 
L'agilité chez Jouve via le Behaviour Driven Development
L'agilité chez Jouve via le Behaviour Driven DevelopmentL'agilité chez Jouve via le Behaviour Driven Development
L'agilité chez Jouve via le Behaviour Driven Development
 
Test driven development v0.2 20121221
Test driven development v0.2 20121221Test driven development v0.2 20121221
Test driven development v0.2 20121221
 
Pratiques de développement pour équipes Agile
Pratiques de développement pour équipes AgilePratiques de développement pour équipes Agile
Pratiques de développement pour équipes Agile
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice Duteil
 
10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx
 
CARA - Coding Dojo TDD & Open Closed Principle
CARA - Coding Dojo TDD & Open Closed PrincipleCARA - Coding Dojo TDD & Open Closed Principle
CARA - Coding Dojo TDD & Open Closed Principle
 
Valider par des tests - Blend
Valider par des tests - BlendValider par des tests - Blend
Valider par des tests - Blend
 
Mesurez votre libido agile
Mesurez votre libido agileMesurez votre libido agile
Mesurez votre libido agile
 
Tester votre libido Agile
Tester votre libido AgileTester votre libido Agile
Tester votre libido Agile
 
Lyong testing agile_testing
Lyong testing agile_testingLyong testing agile_testing
Lyong testing agile_testing
 
Design Sprint, 18 mois et 30 sprints plus tard : joies, détresses et partage ...
Design Sprint, 18 mois et 30 sprints plus tard : joies, détresses et partage ...Design Sprint, 18 mois et 30 sprints plus tard : joies, détresses et partage ...
Design Sprint, 18 mois et 30 sprints plus tard : joies, détresses et partage ...
 
La relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiquesLa relecture de code : avant tout des pratiques
La relecture de code : avant tout des pratiques
 
SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...
SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...
SEO AnswerBox, une méthode inédite pour interroger vos données et créer vos d...
 
Comment faire du Data SEO sans savoir programmer ?
Comment faire du Data SEO sans savoir programmer ?Comment faire du Data SEO sans savoir programmer ?
Comment faire du Data SEO sans savoir programmer ?
 
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
 
Geek Time September 2016 : JavaScript Linting Tools
Geek Time September 2016 : JavaScript Linting ToolsGeek Time September 2016 : JavaScript Linting Tools
Geek Time September 2016 : JavaScript Linting Tools
 
La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !La revue de code : agile, lean, indispensable !
La revue de code : agile, lean, indispensable !
 

Plus de OLBATI

Plus de OLBATI (12)

Geek Time Mai 2017 : Vue.js
Geek Time Mai 2017 : Vue.jsGeek Time Mai 2017 : Vue.js
Geek Time Mai 2017 : Vue.js
 
Geek Time Janvier 2017 : Quiz Java
Geek Time Janvier 2017 : Quiz JavaGeek Time Janvier 2017 : Quiz Java
Geek Time Janvier 2017 : Quiz Java
 
Geek Time Janvier 2017 : Java 8
Geek Time Janvier 2017 : Java 8Geek Time Janvier 2017 : Java 8
Geek Time Janvier 2017 : Java 8
 
Geek Time December 2016 : Bitcoin/Blockchain
Geek Time December 2016 : Bitcoin/BlockchainGeek Time December 2016 : Bitcoin/Blockchain
Geek Time December 2016 : Bitcoin/Blockchain
 
Geek Time December 2016 : Quiz Java 8
Geek Time December 2016 : Quiz Java 8Geek Time December 2016 : Quiz Java 8
Geek Time December 2016 : Quiz Java 8
 
Geek Time Novembre 2016 : Quiz
Geek Time Novembre 2016 : QuizGeek Time Novembre 2016 : Quiz
Geek Time Novembre 2016 : Quiz
 
Geek Time Novembre 2016 : Cucumber
Geek Time Novembre 2016 : CucumberGeek Time Novembre 2016 : Cucumber
Geek Time Novembre 2016 : Cucumber
 
Geek Time October 2016 : Coding Dojo - Calisthenics Objects
Geek Time October 2016 : Coding Dojo - Calisthenics ObjectsGeek Time October 2016 : Coding Dojo - Calisthenics Objects
Geek Time October 2016 : Coding Dojo - Calisthenics Objects
 
Geek Time September 2016 : Coding Dojo - Working on Legacy Code
Geek Time September 2016 : Coding Dojo - Working on Legacy CodeGeek Time September 2016 : Coding Dojo - Working on Legacy Code
Geek Time September 2016 : Coding Dojo - Working on Legacy Code
 
Geek Time Août 2016 : Docker
Geek Time Août 2016 : DockerGeek Time Août 2016 : Docker
Geek Time Août 2016 : Docker
 
Geek Time Juin 2016 : Node.js
Geek Time Juin 2016 : Node.jsGeek Time Juin 2016 : Node.js
Geek Time Juin 2016 : Node.js
 
Geek Time Juin 2016 : React
Geek Time Juin 2016 : ReactGeek Time Juin 2016 : React
Geek Time Juin 2016 : React
 

Geek Time Juillet 2017 : TDD coté Front/JS

  • 1. TDD coté Front/JS Geek Time - Juillet 2017 Mouhcine LAHSSAINI Consultant - OLBATI
  • 2. OLBATI - Geek Time - Juillet 2017 TDD coté Front/JS ●C'est quoi le TDD ? ●Tests list ●Fake it, triangulate, obvious implementation ● Refactoring ●Données de test ●Mock et Stub ●Demo ●Conclusion !2
  • 3. OLBATI - Geek Time -Juillet 2017 Le cycle de TDD !3 Ecrire un test et vérifier qu’il ne passe pas Ecrire le code le plus simple qui fasse passer le test Supprimer les répétitions, améliorer la lisiblité
  • 4. OLBATI - Geek Time -Juillet 2017 !4
  • 5. OLBATI - Geek Time - Juillet 2017 • Que devriez-vous tester? – Lister tous les tests. – Ajouter des tests suite au nouvelles idées. !5 Que devriez-vous tester? Avant de commencer, faites une liste de tous les tests que vous aurez à écrire. Pendant la session, lorsqu’une idée arrive, ajoutez un test à votre liste et continuez de programmer.
  • 6. OLBATI - Geek Time - Juillet 2017 Pattern: Fake it ‘til you make it ●Vous avez écrit un test. ●Vous n’avez pas en tête une implémentation simple: • Dans le code de production, faite passer le test en renvoyant la valeur attendue par le test !6
  • 7. OLBATI - Geek Time - Juillet 2017 Pattern: Triangulate ●Un premier test grâce à un Fake It. ●Vous souhaitez avancer pas à pas: •Ecrivez un second test •Ecrivez le code le plus simple qui fasse passer ce test sans casser le premier !7
  • 8. OLBATI - Geek Time -Janvier 2017 Pattern: Obvious Implementation •Ecrivez un test simple •Faite passer le test en écrivant l’implémentation évidente !8
  • 9. OLBATI - Geek Time - Juillet 2017 Refactoring ●C’est une technique de restructuration du code existant: modifier sa structure sans changer son comportement externe ●Ensemble de petites modifications dans le but d’améliorer le code ●Le système se doit de toujours fonctionner suite à chaque refactoring. Eviter les régressions !9 Quoi ?
  • 10. OLBATI - Geek Time - Juillet 2017 Refactoring ●Améliorer la structure du logiciel ●Rendre le code plus lisible et maintenable ●Faciliter les futurs changements ●Plus de flexibilité ●Augmenter la réutilisabilité ●Faciliter la recherche de bugs !10 Pourquoi ?
  • 11. OLBATI - Geek Time - Juillet 2017 Données de test ●Quelles données utiliser pour un test? •Utilisez des données qui rendent le test facile à lire et à suivre. !11
  • 12. OLBATI - Geek Time - Juillet 2017 Mock et Stub ●Stub: fournir un résultat prédéfini a chaque fois la fonction est appelée ●Mock: est un espion sur un objet !12
  • 13. OLBATI - Geek Time - Juillet 2017 FIRST • First: le test est écrit en premier • Independent: le test s’exécute indépendamment des autres • Repeatable: le test produit le même résultat à chaque appel • Simple: le test met en œuvre le minimum de données • self-Testing: le test est automatisé !13
  • 14. OLBATI - Geek Time - Juillet 2017 DEMO !14
  • 15. OLBATI - Geek Time - Juillet 2017 Conclusion ●Passer plus de temps à penser aux tests que à la recherche des bugs dans notre code ●Le TDD est un support indispensable du refactoring de code !15
  • 16. OLBATI - Geek Time - Juillet 2017 !16 Thanks! Any questions? mouhcine.lahssaini@olbati.com