Glossaire

Dummy: C'est un objet qui est transmis mais jamais utilisé réellement dans le test. Typiquement utilisé pour remplir une liste de paramètre d'un méthode.

Mock : Lors du test du fonctionnement d'une méthode, si celle-ci, utilise des objets complexes pour fonctionner. La réalisation des tests sur cette méthode peut s'avérer difficile, voir impossible, car ces objets complexes que la méthode utilise, peuvent avoir des comportement multiples. Il est donc difficilement de prévoir le comportement de ces objets quand la méthode les utilises.

C'est là que le Mock entre en jeu. Le mock est un objet factice dont le comportement va-t-être imposé par le développeur. Il aide en prenant la place d'un objet réel utilisé dans la méthode à tester.
L'objet à l'origine complexe, n'a plus donc qu'un seul comportement possible, rendant le test de la méthode plus simple.

Stub : Lors du test du fonctionnement d'une méthode. Si celle-ci réalise des choses que nous ne voulons pas quelle fasse, durant la phase de test. cela est dérangeant. Par exemple le test d'une méthode d'envoi d'e-mail. La méthode étant testé régulièrement, elle créerai du spam. Pour corriger cela, un projet "bien" codé utilisera des interfaces de code. En plus des avantages classique des interfaces, celle-ci simplifie le test des méthodes en permettant d'utiliser lors du test, une implémentation de la méthode qui ne nous causera aucun problème. C'est ce que l'on appel le Stub. De plus il pourra même nous aider lors des tests, en ajoutant dans cette implémentation, des fonctions spécifique au test. Comme un compteur du nombre d’exécution d'une méthode. Ou encore une méthode permettant d'avoir un jeu de données factice pour les tests.

Fake: Un Fake objet peut-être vue comme une version amélioré du Stub, qui fait pratiquement le même travail que le code de production, mais qui prend quelques raccourcis pour le faire. Exemple un jeu de donnée en mémoire et non en provenance d'une base de donnée, potentiellement absente de l'environnement de test ou qui n'est pas encore complet.