Utilisez la puissance de PHPUnit grâce aux mocks

On ne présente plus PHPUnit, cet excellent outil permettant de piloter les tests de votre application. Mais connaissez-vous vraiment sa puissance ? Accrochez-vous à votre slip, ça décoiffe !

Lorsque l'on développe des outils génériques, il est primordial de tester son code. Il devient cependant compliqué de tester certains objets, par exemple les classes abstraites ou interfaces : comment tester une classe ne pouvant être instanciée ?

PHPUnit propose une solution que l'on retrouve dans beaucoup d'autres languages de programmation : le Mock, un objet simulé reproduisant le comportement d'un objet réel.

Encore des mots compliqués tout ça...

Mais non, c'est pourtant simple : PHPUnit va créer un objet irréel temporaire qui étend la classe/interface que vous souhaitez tester :)

Supposons que vous disposez d'une classe abstraite Article comme suit :

Dans vos tests unitaires, vous ne pouvez bien entendu pas instancier cette classe abstraite. Pour effectuer ces tests, vous allez donc déclarer un mock, comme suit :

La force des mocks, maintenant tu maîtrises, jeune padawan !