2010-01-26 4 views
4

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

3

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.

Questions connexes