Mockito Chti JUG
-
Upload
david-gageot -
Category
Technology
-
view
3.083 -
download
2
description
Transcript of Mockito Chti JUG
Ecrire des tests unitaires est devenu simple.
David Gageot
CTO Algodeal.com «The Crowd Sourced Quant
Hedge Fund»
@dgageotjavabien.net
Photo: http://www.flickr.com/photos/91082225@N00/3271601712
Dans la salle :
Tests unitaires ?Couverture >50% ?
TDD ?Mocks ?
Le code modifiépour être testable.
Les frameworks democks verbeux.
La réécriture des testsquand le code change.
L'écriture de helpers/buildersrien que pour les tests.
Fini...
« Objet passé en argument mais jamais utilisé »Dummy object
« Implémentation simplifiée suffisante pour les tests »Fake Object
Stub« Réponses pré-programmées et parfois une mémoire »
Mock« Contrat de collaboration »
Photo: http://lh4.ggpht.com/_hViQXCC13cs/Sg21-wh7znI/AAAAAAAAA48/Piztq3c9cwE/s288/DSCN3658.JPG
Mocksà la main
Contre
Le match
Round 01 - Les Dummy objects
« Objet passé en argument mais jamais utilisé »
Dummy object
Pas de NullPointerException.Indépendant de l’évolution constructeur.
Fonctionne avec les interfaces et les classes.
Moins de tests qui changent
quand le code change
Plusrobuste
Pas besoin de changer le
code pour le rendre testable
Dummy avec Mockito
Round 02 - Les Fakes
« Implémentation simplifiée suffisante pour les tests »
Fake Object
L’implémentation simplifiée peut être +/- complexe :HashMap pour une base clef/valeur.
Base de données mémoire pour remplacer mysql.
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
code pour le rendre testable
Plus facile à maitriser
Round 03 - les Stubs
Stub
« Réponses pré-programmées et parfois une mémoire »
Stub avec Mockito
Pas besoin de classe de test
Moins sensible aux changements
Assertion plutôt que Vérification
Round 04 - les Mocks
Mock
« Vérification de comportement et d'interactions »
Pas besoin de classe de test
Moins de tests qui changent
quand le code change
Pas besoin de changer le
code pour le rendre testable
Mock
Tester la gestion des exceptions.
Mock
Tester les appels multiples.
Mock
Capture de paramètres.
Pas besoin de changer le
code pour le rendre testable
Pas d’implémentation
classe pour les tests
Moins de tests qui changent
quand le code change
Robuste Lisible Compact
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 BDD (given/when/then).
Matchers....
Merci.Questions / Réponses
David Gageot
CTO Algodeal.com «The Crowd Sourced Quant
Hedge Fund»
@dgageotjavabien.net