mardi 27 février 2018

À propos des mocks

J’ai découvert les mocks (ou les bouchons, en français) en 2005, lorsque j’ai commencé à m’intéresser très sérieusement aux tests.

J’avoue qu’à l’époque, je n’y ai vu qu’une couche de complexité qui n’apportait pas une réelle valeur ajoutée, et j’ai gardé cette opinion pendant longtemps, même si ponctuellement, j’y ai vu un réel intérêt.

Et puis j’ai commencé à m’intéresser à ce qu’était réellement la programmation orientée objet, et j’ai alors totalement changé d’avis à propos des bouchons.

Je ne peux aujourd’hui plus du tout m’en passer et je les mets en œuvre systématiquement pour simuler les dépendances de mon code.

Pourquoi est-ce que je vous explique tout cela ?

Lire la suite

lundi 27 septembre 2010

Vous êtes dépendant ? ce n'est pas un problème !

L'injection de dépendances est un patron de conception que tout bon développeur qui fait de la programmation orientée objet, en PHP ou avec tout autre langage, devrait mettre en œuvre.

Pour rappel, il consiste à ne pas instancier d'objet dans le code des classes lors de la conception de ces dernières, mais à les injecter lors de exécution du code dans les instances de classes, soit à l'aide d'un passage par argument sur la méthode appelée, soit à l'aide d'une méthode dédiée.

Ainsi, le découplage entre les classes est augmenté, et le code est alors plus modulaire et réutilisable.

De plus, l'injection de dépendances facilite l'écriture des tests unitaires puisqu'elle permet de bouchonner facilement à l'aide de mock.

Pour autant, sa mise en œuvre n'est pas toujours forcément aisée.

Lire la suite

vendredi 24 septembre 2010

Teasing 3

<?php namespace mageekguy\atoum\tests\units\phar; use \mageekguy\atoum; use \mageekguy\atoum\mock; require_once(__DIR__ . '/../../runner.php'); /** @isolation on */ class generator extends atoum\test {     public function testRun()     {         ...         $mockController = new  […]

Lire la suite

mercredi 1 juillet 2009

Exemple de mise en oeuvre des mock

Vous trouverez ici une classe de tests unitaires pour tester ce code, qui utilise l'extension PHP memcache.

Son intérêt est qu'elle permet d'effectuer les tests sans devoir disposer d'un serveur memcache opérationnel, grâce à la technique des mocks.

Lire la suite

lundi 15 juin 2009

Simuler le fonctionnement des fonctions natives de PHP

PHP n'étant pas totalement orienté objet, il est parfois difficile de tester le code généré, notamment s'il emploie les fonctions natives du langage, ce qui arrive tout de même assez régulièrement.

Lire la suite

- page 1 de 2