Mockito Chti JUG

Post on 10-Nov-2014

3.076 views 2 download

Tags:

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