TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
-
Upload
french-scrum-user-group -
Category
Technology
-
view
1.365 -
download
0
Transcript of TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)
![Page 1: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/1.jpg)
Docteur BDD
Ou comment j’ai appris à ne plus m’en faire avec les tests
(et la doc!)
![Page 2: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/2.jpg)
Merci à nos sponsors Platinum
![Page 3: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/3.jpg)
Et merci à nos sponsors Gold et Silver
![Page 4: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/4.jpg)
Guillaume Saint Etienne
• Développeur Senior .Net
• Artisan Logiciel / Software Craftsman • J’ai également été Architecte, Chef de Projet, Scrum Master,
Responsable d’Activité
• http://dotnetguru2.org/gse
• http://groups.google.com/group/craftsmen-france-
• Twitter : @guillaume_agile
![Page 5: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/5.jpg)
TESTER
• Je teste
• Tu testes
• Il ou elle teste
• Nous testons
• Vous testez
• Ils ou elles testent
• … mais tu peux pas (tout) test
![Page 6: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/6.jpg)
qu'est ce que je teste?
Mon logiciel…
![Page 7: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/7.jpg)
Comment je vois mon logiciel
![Page 8: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/8.jpg)
De ma vision du logiciel découle ma vision des tests
![Page 9: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/9.jpg)
Acceptance = IHM?
• Et les règles métier?
• Et le stockage?
• Et les transmissions/flux?
• Les transactions? les services externes?
• La gestion des erreurs, des mises à jour… Faut-il à chaque fois que je lance tout mon logiciel pour n’en tester qu’une partie???
![Page 10: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/10.jpg)
% Code de l’IHM
![Page 11: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/11.jpg)
GOF, ca vous parle?
• Humble Dialog
• MVC
• MVP
• MVVM
• …
![Page 12: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/12.jpg)
Alors, découpons
![Page 13: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/13.jpg)
Comment tester cela?
![Page 14: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/14.jpg)
On est passé de ca…
![Page 15: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/15.jpg)
…à cà!
![Page 16: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/16.jpg)
Et puis on m’a parlé de services…
![Page 17: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/17.jpg)
Alors j’ai découpé en services
![Page 18: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/18.jpg)
Ca me rappelle …
![Page 19: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/19.jpg)
Heureusement, je travaille chez
![Page 20: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/20.jpg)
J’ai voulu tester les « services »
![Page 21: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/21.jpg)
Mais un service c’est pas simple
• Les dépendances m’ont tuer!
![Page 22: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/22.jpg)
A l’intérieur…
![Page 23: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/23.jpg)
Ce que je teste, je l’éclaire
![Page 24: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/24.jpg)
Ce que je teste, je le nomme
![Page 25: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/25.jpg)
Ce que je teste, je l’explicite
• Je dis clairement et simplement ce que j’attends, moi développeur.
• Ce que j’attends comme comportement, c’est ce qui va œuvrer (et qui est indispensable pour) le bon fonctionnement de l’ensemble.
• Comment mon client pourrait-il être satisfait de l’ensemble, si chaque pièce ne fonctionne pas de manière irréprochable?
![Page 26: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/26.jpg)
Tester à partir des UI?
![Page 27: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/27.jpg)
Alors, (re)disons le
• Tester « tout » et « à la fin » : CA NE MARCHE PAS!
• Le BDD pour l’Acceptance Testing est une ARNAQUE! (Integration/Integrated Tests)
• Car les scénarios sont d’une complexité exponentielle, vous n’y arriverez pas!
• Laissez tomber Selenium! (on en reparle) http://www.jbrains.ca/permalink/integrated-tests-are-a-scam-part-1
![Page 28: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/28.jpg)
Pourquoi abandonner ATDD
• Si « Humble Dialog » est bien appliqué,
• tester sur l’UI revient à tester le navigateur Web ou Winform/WPF ou JFC/Swing ou ….
• (too much) code in the UI = it smells
• Integrated Tests are a scam!
![Page 29: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/29.jpg)
Integrated Tests are a scam!
• I use the term integrated test to mean any test whose result (pass or fail) depends on the correctness of the implementation of more than one piece of non-trivial behavior.
– J. B. Rainsberger
![Page 30: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/30.jpg)
Un seul principe
![Page 31: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/31.jpg)
KISS
• Keep it simple, stupid!
• Ce que l’on teste bien s’énonce clairement
– (ou comment ne pas boire la tasse quand on cite Boileau)
• Simple = Unique, seul
![Page 32: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/32.jpg)
Tester c’est comprendre
• du latin « comprehensio »1, de « cum », avec, et « prehendere », prendre: action de saisir ensemble ou de prendre avec soi
![Page 33: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/33.jpg)
Comprendre quoi?
• .. Comment ca marche (à l’intérieur)
– Ou bien
• Comment ça se comporte (de l’extérieur)
![Page 34: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/34.jpg)
![Page 35: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/35.jpg)
Le Test Comportementaliste
![Page 36: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/36.jpg)
Le réserver aux IHM?
• Pourquoi n’y aurait-il que les IHM qui ont un comportement?
![Page 37: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/37.jpg)
Qu’est ce qu’un comportement?
• Le comportement d'un être vivant et, plus généralement, de tout autre système est la partie de son activité qui se manifeste à un observateur
• http://fr.wikipedia.org/wiki/Comportement
![Page 38: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/38.jpg)
Qui observe quoi?
![Page 39: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/39.jpg)
On a bien dit « automatiser le test »
• L’observateur est donc un programme
…un automate
![Page 40: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/40.jpg)
La chose observée
• est un bout de code.
• Doit être:
– Simplifiée pour mieux comprendre
– Simplifiée pour tester plus vite
– Simplifiée pour avoir un résultat plus rapidement
– Simplifiée pour rechercher les problèmes plus simplement.
• Le test lui-même doit rester simple
![Page 41: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/41.jpg)
Simplifier = Isoler
![Page 42: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/42.jpg)
Une chose à la fois
![Page 43: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/43.jpg)
Single Responsibility
![Page 44: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/44.jpg)
S.O.L.I.D. • Single responsibility principle
– the notion that an object should have only a single responsibility.
• Liskov substitution principle
– the notion that “objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program”
• Interface segregation principle
– the notion that “many client specific interfaces are better than one general purpose interface
![Page 45: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/45.jpg)
Si mon code est SOLID
• Alors mes tests doivent l’être aussi
![Page 46: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/46.jpg)
Un exemple
• Et maintenant, un peu de vrai code
![Page 47: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/47.jpg)
Ce que m’apporte la forme BDD
T.U. classique
•ARRANGE
•ACT
•ASSERT
T.U. Behavioriste
•GIVEN
•WHEN
• THEN
![Page 48: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/48.jpg)
Je passe au BDD
• Je passe à une description textuelle
• Exemple!
![Page 49: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/49.jpg)
DRY
• Mes tests aussi !
• Refactoring
• Les Steps c’est beaucoup de DRY
• Exemple!
![Page 50: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/50.jpg)
Exemple de refactoring
• Je vais gagner énormément de temps
• Fini le copier/coller… dans le code !
• Donc fini les erreurs…. sur le code (technique)
des tests!
• Exemple!
![Page 51: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/51.jpg)
Les incontournables
• de la refactorisation :
– Dummies / Doublures
– Fake
– Mocks
– Stub
– Espions
– Helpers
![Page 52: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/52.jpg)
Mes tests peuvent être lus
• Ce n’est plus du code, c’est du texte!!
• C’est ca qui change tout
• Je peux les échanger
• Quelqu’un de non technique pourrait les écrire
![Page 53: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/53.jpg)
Qu'est ce que mon test raconte?
• Un scénario
• Même s’il revêt une réalité technique, le comportement devrait pouvoir être compris et approuvé par quelqu’un de logique.
• Il ne doit cibler qu’une chose à la fois (isolation)
![Page 54: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/54.jpg)
Est ce suffisant pour faire une documentation?
![Page 55: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/55.jpg)
• Si c’est bien raconté, oui.
• Pèsera autant qu’un lourd cahier de tests.
• J’ai gagné des semaines (voir des mois) hommes de travail de rédaction et de vérifications.
• Export automatique -> Html, Word, Pdf
![Page 56: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/56.jpg)
Est-ce que tester "à ce point" modifie ma conception logicielle?
(design émergeant)
![Page 57: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/57.jpg)
Oui, et de 2 façons
![Page 58: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/58.jpg)
Penser le test en premier
• BDD = TDD
• Test First
• Anticiper plutôt que guérir
• 40 à 90% de code défectueux en moins
• 15 à 35% de temps supplémentaire au début du projet (seulement)
• Vous connaissez le cout de la correction après développement ou de la TMA…. donc... – http://www.infoq.com/news/2009/03/TDD-Improves-Quality
![Page 59: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/59.jpg)
Penser le comportement
Les vertus de l’abstraction
![Page 60: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/60.jpg)
Décrire
Descriptif n’est pas Impératif
![Page 61: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/61.jpg)
Un comportement attendu
est vérifiable à coup sur
![Page 62: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/62.jpg)
Domain Driven Design
• C’est le meilleur moyen d’être proche du domaine métier de votre client
• Exemple (description BDD et objet métier)
![Page 63: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/63.jpg)
Polyglot Data
• Le meilleur moyen d’être Data Storage Agnostic
• Ce n’est plus le DBA qui commande
• SQL / NoSQL ?
• La persistance est un plus, voila tout.
• Exemple: le FakeStorer dans les tests
![Page 64: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/64.jpg)
Concevoir un comportement
• C’est penser en terme FONCTIONNELS
![Page 65: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/65.jpg)
C’est s’interesser à l’essentiel
• On ne voit bien qu'avec le test. L'essentiel est invisible pour les yeux.
Antoine de Saint-Test
![Page 66: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/66.jpg)
Incidences sur le code
• Penser d’abord des Interfaces qui décrivent le comportement tels que les tests ont pu les expliciter dans des scénarios mettant en évidence la valeur ajoutée du fonctionnement choisi.
• Ecrire les tests qui détaille les scénarios du comportement à observer.
• Ecrire l’implémentation.
• Vérifier.
![Page 67: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/67.jpg)
Responsabiliser le code
• Isolation = Une seule responsabilité
• Tester c’est apprivoiser.
• « Tu deviens responsable pour toujours de ce que tu as testé »
Antoine de Saint-Test
![Page 68: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/68.jpg)
Toujours plus fluide
• Le style change
• On devient plus « fluent »
• Le code se lit (presque) comme une phrase en langage naturel
• On se rapproche de la programmation fonctionnelle (sans changer de langage)
• Fluent API + lambda expressions = le chainon manquant?
![Page 69: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/69.jpg)
Références
![Page 70: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/70.jpg)
![Page 71: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/71.jpg)
Pardon
• à Antoine de Saint-Exupéry à relire (souvent)
![Page 72: TDD/BDD: ou comment j’ai appris à ne plus m’en faire avec les tests (et la doc)](https://reader033.fdocument.pub/reader033/viewer/2022060108/554dc8d9b4c905c7488b52a3/html5/thumbnails/72.jpg)
Questions ?