Dans le cadre de Atoum, mon framework de tests unitaires dédié à PHP 5.3, j'ai potentiellement besoin de faire remonter des informations à l'utilisateur à la fois lors de l’exécution des tests et une fois qu'ils sont terminés.

Il peut en effet être intéressant de lui afficher par exemple une barre de progression au cours du déroulement des tests et de lui afficher, une fois qu'ils sont terminés, le détail des échecs.

Contrainte supplémentaire, tous les utilisateurs n'ont pas forcément les mêmes besoins à ce niveau.

Certains se contenteront d'un affichage basique, tandis que d'autres auront potentiellement besoin de s'interfacer avec des systèmes externes ou souhaiteront un affichage plus détaillé.

Pour répondre à cette problématique, j'ai décidé de faire de la programmation événementielle, en mettant en place au niveau de ma classe de test de base et de ma classe qui exécute les tests le patron de conception observateur/observable.