J'ai lu plusieurs fois sur le web que lorsqu'il est question de dépendance en PHP, il est bon d'utiliser l'injection de dépendance au lieu de Globals car cela rend le test plus facile. Quelqu'un peut-il expliquer comment cela rend le test plus facile? Et ce que je voudrais utiliser pour faire le test?Comment testez-vous les classes/objets PHP?
Répondre
Je suggérerais d'apprendre sur les tests unitaires et de jeter un oeil à quelques outils disponibles pour PHP. Je recommanderais PHPUnit, mais il y a aussi SimpleTest, que certaines personnes préfèrent.
Minimiser la portée des données mutables est généralement une bonne idée. En ce qui concerne les tests, vous pouvez écrire des tests unitaires qui exercent de petites fonctions atomiques sans craindre que les variables aient été modifiées comme effet secondaire d'une autre opération. Si vous voulez tester que l'état d'un objet est a, b ou c, vous savez ce que vous devez tester car vous savez exactement quelles opérations peuvent affecter l'état. Si votre état est global, vous n'avez aucune idée de ce que d'autres opérations dans votre application pourraient l'affecter, vous laissant avec un tas de spaghetti difficile à maintenir. Joshua Bloch explique cela gentiment dans Effective Java, Item 29
Je vous recommande de le lire, même s'il n'utilise pas PHP, le concept est le même.
En ce qui concerne les tests unitaires, je recommanderais Pragmatic Unit Testing publié par The Pragmatic Programmers. Il existe des versions pour Java/JUnit et C#/NUnit, mais les concepts sont totalement applicables à PHP, surtout si vous utilisez PHPUnit qui suit les modèles xUnit de très près.
- 1. PHP: Comment remplacer les citations
- 2. Comment résoudre les conflits PHP?
- 3. Comment modifier les paramètres PHP à partir du code php?
- 4. Comment calculer les totaux avec smarty php
- 5. Comment les scripts PHP se compilent?
- 6. Comment compresser les fichiers JSON avec PHP?
- 7. Comment extraire les détails d'un objet PHP?
- 8. Comment synchroniser l'état entre les sessions PHP?
- 9. comment gérer les modifications d'URL php/mysql
- 10. Comment démarrer avec les thèmes PHP?
- 11. PHP SimpleXML, comment définir les attributs?
- 12. PHP - Simpletest - Comment tester "inclus" les classes
- 13. Comment utiliser les classes internes en PHP?
- 14. comment valider les nombres décimaux en PHP
- 15. Comment multiplier les éléments de php array
- 16. comment enregistrer les échecs dans l'unité php?
- 17. php preg_match, comment changer les valeurs
- 18. Comment analyser les informations en PHP?
- 19. comment décoder les caractères unicode en php
- 20. Comment gérer les problèmes Unicode en PHP?
- 21. Comment classer les types MIME (PHP)
- 22. Comment utiliser les sessions php dans xslt?
- 23. PHP: comment éviter les fonctions de redéclarage?
- 24. Comment trier les produits JSON avec PHP
- 25. Comment séparer les valeurs retournées en PHP?
- 26. Comment gérer les liens inclus en PHP?
- 27. PHP: comment envoyer les bases de l'email
- 28. Comment valider les menus déroulants en PHP?
- 29. Comment examiner les constantes définies en PHP?
- 30. PHP & MySQL comment afficher les données question