Your SlideShare is downloading. ×
0
TDD avec ou sans mock
TDD avec ou sans mock
TDD avec ou sans mock
TDD avec ou sans mock
TDD avec ou sans mock
TDD avec ou sans mock
TDD avec ou sans mock
TDD avec ou sans mock
TDD avec ou sans mock
TDD avec ou sans mock
TDD avec ou sans mock
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

TDD avec ou sans mock

199

Published on

S'il est facile de comprendre l'intérêt d'un code bien testé, la mise en œuvre de tests se heurte souvent au problème des dépendances du code testé : comment s'abstraire de ces dépendances ? …

S'il est facile de comprendre l'intérêt d'un code bien testé, la mise en œuvre de tests se heurte souvent au problème des dépendances du code testé : comment s'abstraire de ces dépendances ?
A travers une présentation pratique, où Stéphane Malbéqui, Yannick Ameur et Anthony Dahanne rencontreront et résoudrons plusieurs obstacles à la mise en oeuvre de tests untiataires, vous découvrirez à travers un cas concret la mise en œuvre de TDD !

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
199
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Transcript

    • 1. TDD : avec ou sans Mocks ? Par Anthony Dahanne, Yannick Ameur, Stéphane Malbéqui http://blog.valtech.fr
    • 2. Sommaire de la présentation <ul><li>Qu'est ce qu'un Test Unitaire
    • 3. Problèmes de dépendances de couches
    • 4. Plusieurs façons d'y remédier : </li><ul><li>Sans bouchonner
    • 5. En bouchonnant </li></ul><li>Faut il utiliser un framework de mocks ?
    • 6. TDD : pourquoi et comment ?
    • 7. Conclusion </li></ul>
    • 8. Qu'est ce qu'un test unitaire ? <ul><li>Un test unitaire est du code technique qui teste une petite partie de code fonctionnel telle qu’une classe ou une méthode
    • 9. Un test unitaire doit être </li><ul><li>indépendant
    • 10. répétable
    • 11. simple et rapide à développer et à exécuter
    • 12. exécutable automatiquement </li></ul></ul>
    • 13. Problèmes rencontrés... <ul><li>Les applications sont généralement architecturées « en couches »
    • 14. Ce qui induit des dépendances entre composants et des difficultés à tester </li><ul><li>Lenteur de la dépendance (base de données)
    • 15. Pas d'accès à la dépendance (composant non disponible)
    • 16. Comportement non déterministe (temps réel) </li></ul><li>Comment tester du code indépendamment des autres couches ? </li></ul>
    • 17. Solution <ul><li>Injection des dépendances! </li></ul>
    • 18. Sans utiliser un framework de Mocks <ul><li>En utilisant des classes anonymes! </li><ul><li>Héritent de ou implémentent la dépendance
    • 19. En surchargeant les méthodes dont on a besoin </li></ul><li>Orchestrer son code autour de la dépendance </li><ul><li>Extraire le code avant et après l'appel à la dépendance
    • 20. Ne tester uniquement les méthodes extraites </li></ul></ul>
    • 21. Un Framework de Mocks ? <ul><li>Pour faciliter la simulation des dépendances </li><ul><li>Sans passer par une classe anonyme
    • 22. Sans découper le code autour de la dépendance </li></ul><li>Pour vérifier que la dépendance a été correctement utilisée </li><ul><li>Que l'on bien appelé methodeA() 2 fois
    • 23. Que l'on a bien appelé methodeB(paramA) avec la valeur attendue de paramA </li></ul></ul>
    • 24. Utilisation d'un framework de mocks <ul><li>Création du mock (create dans EasyMock)
    • 25. Configuration du mock (expect et return dans EM)
    • 26. Injection du mock dans la classe testée
    • 27. Enregistrement du mock (replay dans EM)
    • 28. Éventuellement, vérification (verify dans EM) </li></ul>
    • 29. TDD : pourquoi et comment ? <ul><li>Introduit en 1999 par Kent Beck
    • 30. Si je sais tester mon code, alors je sais l'implémenter !
    • 31. D'abord faire échouer le test, ensuite écrire une première implémentation </li></ul>
    • 32. Conclusion <ul><li>Choisir une architecture facilitant les tests
    • 33. Tester de manière unitaire et découplée
    • 34. Privilégier les frameworks de tests </li><ul><li>Tests souvent plus faciles à maintenir
    • 35. Couverture des tests possibles à 100%
    • 36. Cependant, pas toujours indispensables (cas simples) </li></ul></ul>
    • 37. Aller Plus loin ! <ul><li>Frameworks de tests unitaires : </li><ul><li>JUnit, TestNG (Java),
    • 38. MbUnit, Nunit, MsTest (.NET),
    • 39. TestUnit (Ruby)
    • 40. PhpUnit (PHP) </li></ul><li>Frameworks de Mocks Objects : </li><ul><li>EasyMock, Moquito (Java),
    • 41. RhynoMock (.NET),
    • 42. Mocha (Ruby) </li></ul><li>TDD : </li><ul><li>Pragmatic unit testing with Java & JUNit, Dave Thomas
    • 43. Test Driven Development by example, Kent Beck
    • 44. MockObjects.com/book </li></ul></ul>

    ×