Un point important (que je n'ai pas été à l'origine de la réaliser), c'est que le Test Unitaire est une technique de contrôle qui peut être utilisé par elle-même, sans avoir à appliquer l'intégralité de Tester la méthodologie.
Par exemple, vous avez un héritage de l'application que vous souhaitez améliorer en ajoutant des tests unitaires sur les zones à problèmes, ou vous trouvez des bugs dans une application existante. et d'écrire un test unitaire pour exposer le problème de code, puis le fixer. Ce sont des semi piloté par les tests, mais peuvent totalement s'intégrer avec votre actuel (non-ATS) le processus de développement.
Deux livres que j'ai trouvés utiles sont:
Développement Piloté par les tests de Microsoft .NET
Un très mains sur le Test Driven development, à la suite de Kent Becks " original TDD livre.
Pragmatique de Tests Unitaires avec C# et nUnit
Bref et pour faire le point sur ce que les tests unitaires et à la meilleure manière de l'appliquer.
En réponse à vos points:
Un test Unitaire, dans la pratique, c'est une méthode unique dans une classe qui contient juste assez de code pour tester un aspect ou le comportement de votre application. Par conséquent, vous aurez souvent beaucoup de très simple de tests unitaires, chaque test sur une petite partie de votre code d'application. Dans nUnit par exemple, vous créez un TestFixture classe qui contient un certain nombre de méthodes d'essai. Le point clé est que les tests "test d'une unité" de votre code, c'est à dire un plus petit (sensible) de son unité. Vous ne testez pas le sous-jacent de l'API que vous utilisez, juste le code que vous avez écrit.
Il y a des cadres qui peuvent prendre une partie de la partie la plus rébarbative de la création de classes de test, cependant je n'ai pas recommander eux. Pour créer des tests unitaires qui fait de fournir un filet de sécurité pour la refactorisation, il n'y a pas d'alternative, mais pour un développeur pour mettre la pensée en quoi et comment la tester son code. Si vous commencez à devenir dépendant sur la génération de tests unitaires, il est trop facile de les voir comme juste une autre tâche qui doit être fait. Si vous vous trouvez dans cette situation, vous faites complètement fausse.
Il n'y a pas de règles simples pour combien de tests unitaires par classe, par méthode etc. Vous avez besoin de regarder le code de votre application et de faire de l'éducation de la évaluation de la complexité existe et écrire plus de tests pour ces zones. La plupart des gens commencer par tester les méthodes publiques seulement parce que ces exercent habituellement le reste des méthodes privées. Cependant, ce n'est pas toujours le cas et parfois, il est nécessaire de tester les méthodes privées.
En bref, même l'expérience de l'unité de testeurs de commencer par écrire évident de tests unitaires, alors regardez pour les plus subtiles, les tests deviennent plus claires une fois qu'ils ont écrit l'évidence des tests. Ils ne s'attendent pas à obtenir tous les tests initiaux, mais au lieu de les ajouter comme ils pensent d'eux.