Question

Je suis un web-développeur en PHP.J'ai une certaine expérience limitée avec l'aide de Tester le Développement en C# les applications de bureau.Dans ce cas, nous avons utilisé nUnit pour le framework de test unitaire.

Je voudrais commencer à utiliser TDD dans de nouveaux projets, mais je ne suis vraiment pas sûr où commencer.

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

Était-ce utile?

La solution

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.

Autres conseils

Je recommande fortement Développement Piloté par les tests par Kent Beck (ISBN-10:0321146530).Il n'était pas écrit spécifiquement pour PHP, mais les concepts sont là et doivent être facilement traduisibles en PHP.

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.

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 Éclipse 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 un intégration continue le 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 l'exécution de 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 obtenir à moi à travers mon profil d'infos sur DONC.Je serais ravi de vous aider.

SimpleTest est un excellent système.J'ai commencé à sortir avec elle sur il y a 5 mois, n'ayant jamais entendu parler de TDD, et SimpleTest est facile à apprendre, mais encore puissant.Comme pour les ressources, je suis en train de lire TDD Par Exemple par Kent Beck, et c'est bon.

Vous devriez regarder dans PHPUnit, il ressemble plutôt nUnit.

Un autre outil moderne, vous devriez regarder, il est Codeception.Il est beaucoup plus simple ensuite de PHPUnit et intègre approche pilotée par scénario, ce qui est très utile pour la génération de la documentation de tests.

Développement piloté par les tests est une approche où les tests sont toujours écrites avant le code.Vous devriez apprendre à PHPUNIT d'abord, afin de commencer TDD Développement.Puis, tout en faisant de votre fonction, vous devez toujours penser à comment la fonction peut échouer et d'écrire des cas de test dans phpunit et à la fin vous devez écrire du code pour passer votre test.Sa va être une nouvelle approche de sorte qu'il sera un peu difficile au début mais une fois que vous obtenez l'utiliser, vous trouverez qu'il est très utile, spécialement pour l'après-développement de bugs et de style de codage.Vous pouvez passer par ce Étape Par Étape guide pour la compréhension de ce concept.

Rappelez-vous toujours si les tests sont écrits après développement ils sont inutiles.Donc TDD est incontournable si vous êtes de la pensée à l'écriture de l'unité de tesst

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top