37 votes

Comment avez/voulez-vous "vigueur," vous-même à faire TDD plutôt que de TAD?

J'ai essayé de sauter sur le TDD train en marche pendant un certain temps maintenant, et tout se passe bien sauf pour une chose cruciale, normalement ce que j'ai fini par faire, c'est de Tester Après le Développement.
J'ai besoin d'un changement de mentalité et je me demande comment vous vous forcez à écrire des tests en premier?

26voto

Barry Wark Points 73462

Le changement de mentalité pour me foutre de réaliser que le DRT est à propos de la conception, pas de test. ATS vous permet de raisonner de façon critique sur l'API de la chose que vous êtes la construction. Écrivez d'abord les tests et souvent c'est très clair ce que l'API est plus commode et approprié. Ensuite, écrivez votre mise en œuvre.

Bien sûr que vous devriez écrire des tests après de trop (tests de régression, tests d'intégration, etc). TDD souvent produit de bonne conception, mais pas nécessairement un bon test de code.

21voto

Ipsquiggle Points 1138

Un grand moment est venu pour moi TDD quand je l'ai lu d'une certaine citation (je ne m'en souviens plus où) que le moment de triomphe pour un test, c'est le moment où le test passe du rouge au vert.

C'est probablement tous les trucs que vous avez lu avant, mais si je commence avec un test en échec, et il devient un passé de test, c'est quand j'ai tirer d'énormes avantages psychologiques. Il fait du bien de changer de rouge à vert. Et si vous êtes compatible avec la prestation de ce moment pour vous-même, il devient addictif, et ensuite beaucoup plus facile de faire faire.

Mais le truc, pour moi a été d'isoler ce moment et s'en délectent.

8voto

Athens Holloway Points 1222

Une fois que j'ai commencé à en tirant parti de l'injection de dépendance, mes cours sont devenus plus petits et plus spécialisés, qui m'a permis d'écrire de simples tests unitaires afin de confirmer qu'ils ont travaillé. Étant donné le nombre limité de tests, j'ai su que ma classe a dû passer au travail, le but de mon TDD effort est devenu plus clair. Il est aussi plus facile à identifier des classes d'intégration requis tests à cause des dépendances sur des ressources externes et qui classée nécessaire tests d'unité injecté maquette/stub/faux objets dans le SUT pour affiner la mise au point de mon test.

6voto

JeffH Points 6059

La Programmation En Binôme

Je me rends compte que cela peut ne pas être une option pour tout le monde, et que beaucoup de développeurs n'aime pas cette idée. Mais j'ai trouvé que si je programme pair avec quelqu'un qui est également engagé à TDD, nous avons tendance à "garder les uns les autres honnête" et de rester avec TDD beaucoup plus que je pouvais la seule programmation par pure volonté.

5voto

DVK Points 63282
  1. Il aide si vous avez un générique framework de test.

    Disposer d'une bibliothèque de fonctions génériques applicables à diverses sortes de tests que vous effectuez. Puis de le ré-utiliser comme blocs de construction pour construire des tests pour le projet que vous êtes sur.

    Pour y arriver, note la commune choses que vous faites dans les tests de vous écrire après. Abstrait loin dans généralisé de la bibliothèque, un par un.

    Ce faisant, va vous permettre de faire beaucoup plus simple de tests très rapidement facilement de ne pas avoir à re-faire l'ennuyeux et le temps de test de code de pilote, au lieu de se concentrer sur les réels cas de test.

  2. Faire "test que de la documentation" approche. Ne pas ajouter/modifier un libellé dans la documentation n'est pas soutenue par des tests appropriés.

    Cela économise du temps - vous n'avez pas à re-analyser la documentation et des exigences, de l'autre tijme, il suffit de construire les tests plus tard - ainsi que de l'aide avec changement de mentalité vous m'avez demandé.

  3. Ne graduelle dans - ajouter des tests pour les nouvelles fonctionnalités/les changements à mesure qu'ils sont mis au travail.

    Personne n'aime à changer leurs façons de faire la dinde froide - de la nature humaine. Laissez la bonne habitude de glisser dans et finalement, elle devient une seconde nature.

  4. Tout de suite budget, le temps pour écrire des tests au début de votre calendrier de développement sur un projet

    Cela permettra à la fois de la force de vous dans les habitudes (en supposant que vous avez tendance à suivre votre plan de projet) et de vous protéger de la course sur les dates d'échéance en raison du temps consacré à la construction des tests.

    Bien sûr, le "plus" du temps pour le TDD finit net gain de temps, mais il n'est pas toujours réalisé au tout début de la phase du projet, qui met une pression négative sur le TDD pratique ("Où sont le prototype des captures d'écran??? Que voulez-vous dire que vous êtes encore à l'écriture de tests???").

  5. Aussi, essayez de suivre les habituelles pratiques recommandées de la petite-fin des classes et des fonctions. Ce - parmi tous les autres avantages - permet beaucoup plus facile de test de l'unité de l'écriture. Le Couple qu'avec #2 (par l'écriture de l'unité de test dans le cadre de la documentation de l'API, lors de la conception de l'API), et votre API dessins "comme par magie" améliorer depuis que vous commencez à remarquer les points faibles immédiatement en raison d'écrire les tests basés sur eux. Comme d'autres personnes ont noté, à l'aide de l'Injection de Dépendance motif/cadre permet de simplifier la construction des tests.

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