Ecrire du code PHP testable

This page is a translated version of the page Manual:Writing testable PHP code and the translation is 100% complete.
Other languages:

Voici quelques notes sur la manière d'écrire du code testable avec les séquences à développer.

Ne présumez pas du contexte global

Accéder aux variables globales (par exemple $wgRequest) sans les déclarer auparavent avec le mot clé global , va provoquer des erreurs et générer des messages E_NOTICE si les accès sont faits à partir d'un contexte non global.

Ne créez pas de variables globales supplémentaires

Le fait de mettre des valeurs dans les variables globales est facile mais cela rend le code moins prédictif. En vous basant sur les variables globales, il vous sera difficile d'isoler les fonctionnalités. Une classe de type singleton est mieux pour tester (mais ce n'est pas encore idéal).

Appuyez-vous sur les entrées directes

Bien que cela ne soit pas toujours réalisable, il est mieux d'écrire un code qui dépend directement des entrées. C'est à dire qu'une classe n'utilise que l'information qu'on lui passe et ne s'appuie ni sur des singletons, ni des variables globales pour obtenir ses informations « hors bande passante ».

N'utilisez pas exit()

Sortir d'un script directement ne devrait pratiquement jamais être fait. En faisant ainsi, vous rendez votre code non testable par PHPUnit. Si votre code se plante sur une erreur inattendue, la meilleure chose à faire est de lever une erreur telle que :

throw new MWException( "Oh noes!" );

Cela permettra à PHPUnit et à MediaWiki de sortir proprement et de fournir aux développeurs, des informations intéressantes telles que le contenu de la pile.

Ressources externes