Ecrire des tests unitaires
  est devenu simple.
David Gageot

   CTO Algodeal.com
«The Crowd Sourced Quant
      Hedge Fund»

        @dgageot
      javabien.net
Dans la salle :

 Tests unitaires ?
Couverture >50% ?
      TDD ?
     Mocks ?




       Photo: http://www.flickr.com/phot...
Fini...

      Le code modifié
     pour être testable.

     Les frameworks de
      mocks verbeux.

    La réécriture des...
Dummy object
   « Objet passé en argument mais jamais utilisé »

                   Fake Object
« Implémentation simplifiée...
Le match

 Mocks
à la main




                    Contre




            Photo: http://lh4.ggpht.com/_hViQXCC13cs/Sg21-wh...
Round 01 - Les Dummy objects
Dummy object
« Objet passé en argument mais jamais utilisé »
Dummy avec Mockito




       Pas de NullPointerException.
 Indépendant de l’évolution constructeur.
Fonctionne avec les i...
Round 02 - Les Fakes
Fake Object

« Implémentation simplifiée suffisante pour les tests »




L’implémentation simplifiée peut être +/- complexe :...
Fake avec Mockito


Pas le rôle d’un framework de Mocks.

 Sauf si le fake n’a pas de mémoire :




           Pas
       ...
Round 03 - les Stubs
Stub
« Réponses pré-programmées et parfois une mémoire »
Stub avec Mockito




Pas besoin de             Moins
classe de test         sensible aux
                      changements
Assertion plutôt que Vérification
Round 04 - les Mocks
Mock


« Vérification de comportement et d'interactions »




                          Pas             Moins de
          ...
Mock


Tester la gestion des exceptions.
Mock


Tester les appels multiples.
Mock


Capture de paramètres.
Robuste           Lisible         Compact




  Moins de            Pas
                   besoin de           Pas d’
  te...
Kung Fu avec Mockito.




         Photo: http://upload.wikimedia.org/wikipedia/commons/d/dd/Wooden-dummy.jpg
Réponses multiples
Annotations
Stubs multi-niveaux
Beaucoup d’autres fonctionnalités




Mocks partiels pour remplacer certaines
      méthodes d’un vrai objet.

   Syntaxe ...
Merci.
Questions / Réponses
David Gageot

   CTO Algodeal.com
«The Crowd Sourced Quant
      Hedge Fund»

        @dgageot
      javabien.net
Prochain SlideShare
Chargement dans…5
×

Mockito Chti JUG

2 558 vues

Publié le

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 558
Sur SlideShare
0
Issues des intégrations
0
Intégrations
265
Actions
Partages
0
Téléchargements
56
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Mockito Chti JUG

  1. 1. Ecrire des tests unitaires est devenu simple.
  2. 2. David Gageot CTO Algodeal.com «The Crowd Sourced Quant Hedge Fund» @dgageot javabien.net
  3. 3. Dans la salle : Tests unitaires ? Couverture >50% ? TDD ? Mocks ? Photo: http://www.flickr.com/photos/91082225@N00/3271601712
  4. 4. Fini... Le code modifié pour être testable. Les frameworks de mocks verbeux. La réécriture des tests quand le code change. L'écriture de helpers/builders rien que pour les tests.
  5. 5. Dummy object « Objet passé en argument mais jamais utilisé » Fake Object « Implémentation simplifiée suffisante pour les tests » Stub « Réponses pré-programmées et parfois une mémoire » Mock « Contrat de collaboration »
  6. 6. Le match Mocks à la main Contre Photo: http://lh4.ggpht.com/_hViQXCC13cs/Sg21-wh7znI/AAAAAAAAA48/Piztq3c9cwE/s288/DSCN3658.JPG
  7. 7. Round 01 - Les Dummy objects
  8. 8. Dummy object « Objet passé en argument mais jamais utilisé »
  9. 9. Dummy avec Mockito Pas de NullPointerException. Indépendant de l’évolution constructeur. Fonctionne avec les interfaces et les classes. Pas Moins de besoin de tests qui Plus changer le robuste changent code pour le quand le code rendre testable change
  10. 10. Round 02 - Les Fakes
  11. 11. Fake Object « Implémentation simplifiée suffisante pour les tests » L’implémentation simplifiée peut être +/- complexe : HashMap pour une base clef/valeur. Base de données mémoire pour remplacer mysql.
  12. 12. Fake avec Mockito Pas le rôle d’un framework de Mocks. Sauf si le fake n’a pas de mémoire : Pas besoin de changer le Plus facile à code pour le maitriser rendre testable
  13. 13. Round 03 - les Stubs
  14. 14. Stub « Réponses pré-programmées et parfois une mémoire »
  15. 15. Stub avec Mockito Pas besoin de Moins classe de test sensible aux changements
  16. 16. Assertion plutôt que Vérification
  17. 17. Round 04 - les Mocks
  18. 18. Mock « Vérification de comportement et d'interactions » Pas Moins de besoin de tests qui Pas besoin de changer le classe de test changent code pour le quand le code rendre testable change
  19. 19. Mock Tester la gestion des exceptions.
  20. 20. Mock Tester les appels multiples.
  21. 21. Mock Capture de paramètres.
  22. 22. Robuste Lisible Compact Moins de Pas besoin de Pas d’ tests qui implémentation changent changer le code pour le classe pour quand le code les tests change rendre testable
  23. 23. Kung Fu avec Mockito. Photo: http://upload.wikimedia.org/wikipedia/commons/d/dd/Wooden-dummy.jpg
  24. 24. Réponses multiples
  25. 25. Annotations
  26. 26. Stubs multi-niveaux
  27. 27. Beaucoup d’autres fonctionnalités Mocks partiels pour remplacer certaines méthodes d’un vrai objet. Syntaxe BDD (given/when/then). Matchers. ...
  28. 28. Merci. Questions / Réponses
  29. 29. David Gageot CTO Algodeal.com «The Crowd Sourced Quant Hedge Fund» @dgageot javabien.net

×