Ecrire du code PHP testable
tests PHPUnit
Contenu
- Exécuter les tests
- Générer la couverture de code
- Ecrire du code PHP testable
- Ecrire des tests
- Intégration continue
- Comprendre les erreurs de build
- Appendice
(comment aider, ressources...)
Outils
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 ».
<span id="Do_not_use_exit()
">
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.