43 votes

Le Développement Piloté par les Tests en PHP.

Je suis un développeur web travaillant en PHP. J'ai une expérience limitée de l'utilisation de Test Driven Development dans les applications de bureau C #. Dans ce cas, nous avons utilisé nUnit pour le framework de test unitaire.

J'aimerais commencer à utiliser TDD dans les nouveaux projets mais je ne sais vraiment pas par où commencer.

Quelles recommandations avez-vous pour un framework de test unitaire basé sur PHP et quelles sont les bonnes ressources pour quelqu'un qui est assez nouveau dans le concept TDD?

40voto

Mark Biek Points 41769

J'ai utilisé à la fois PHPUnit & SimpleTest et j'ai trouvé SimpleTest pour être plus facile à utiliser.

Aussi loin que TDD va, je n'ai pas eu beaucoup de chance avec elle dans le sens le plus pur. Je pense que c'est surtout un moment de discipline problème sur mon bien.

L'ajout de tests après le fait a été un peu utile, mais mes choses préférées à faire est d'écrire SimpleTest tests de test pour certains bugs que j'ai à corriger. Qui le rend très facile à vérifier que les choses sont en réalité fixe et de rester fixe.

11voto

Mike H Points 323

Je recommande fortement Kent Beck (ISBN-10: 0321146530), le développement piloté par les tests . Il n'a pas été écrit spécifiquement pour PHP, mais les concepts sont là et devraient pouvoir être facilement traduits en PHP.

9voto

Till Points 14673

PHPUnit est un standard, mais il est parfois aussi écrasante, donc si vous trouvez qu'il est trop complexe, découvrez phpt pour obtenir vous avez commencé. C'est très, très facile d'écrire des tests en elle. Une évidence pour n'importe quel programmeur.

Et pour répondre à votre TDD question - je ne suis pas sûr si le DRT est widley utilisé dans le PHP de l'espace. Je peux voir que le développement rapide d'applications et TDD un peu clash (strictement à mon humble avis). ATS vous oblige à avoir une image complète de ce que vous construisez et vous écrivez vos tests à l'avant puis de mettre en œuvre le code pour faire le test.

Ainsi, par exemple, ce que nous faisons au lieu d'écrire un grand nombre de tests quand nous aurons terminé. Ce n'est pas toujours la meilleure approche, car parfois vous retrouver avec de faux tests qui passent, mais ne sont pas vraiment utile, mais au moins c'est quelque chose que vous pouvez développer. En interne, nous continuons sur des tests et fondamentalement écrire un test pour chaque bug, nous trouver. C'est de cette façon il devient de plus en plus solide.

4voto

Sam McAfee Points 4615

Personnellement, je préfère SimpleTest. Il y a un test de ligne de commande de coureur et basé sur le web de test runner, et il y a même une Eclipse plugin pour vous permettre d'exécuter des tests unitaires à partir de l'IDE lui-même. J'ai trouvé le Zend pour PHPUnit connexion beaucoup plus difficile à obtenir, surtout avec le débogueur.

La façon dont nous utilisons SimpleTest maison est avec une intégration continue de script que nous avons écrit nous-mêmes. Chaque fois que nous vérifions dans une fonction de SVN nous inclure les tests unitaires. Toutes les heures, le CI script s'exécute et les appels d'une ligne de commande script PHP qui s'exécute tous nos tests unitaires. Si tout casser, je reçois un mail. Il a été un excellent moyen de réduire les bugs dans nos systèmes.

Cependant, vous pouvez tout aussi bien utiliser quelque chose comme Phing pour exécuter vos tests automatiquement, soit sur une tâche cron ou avec un SVN vérifier-dans crochet.

En fait, si vous voulez me contacter directement pour plus d'aide, vous pouvez me contacter via mon profil d'infos sur DONC. Je serais ravi de vous aider.

2voto

MattBelanger Points 3237

SimpleTest est un excellent système. J'ai commencé avec cela il y a environ 5 mois, n'ayant jamais entendu parler de TDD, et SimpleTest est facile à apprendre mais reste puissant. Pour ce qui est des ressources, je lis actuellement TDD By Example de Kent Beck, et c’est bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X