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é
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
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