Premiers pas avec le test unitaire en C # avec Visual Studio
Je sais Visual Studio propose quelques Tests Unitaires goodies. Comment puis-je les utiliser, comment les utilisez-vous? Que dois-je savoir sur les tests unitaires (à supposer que je ne sais rien).
Cette question est similaire, mais il ne répond pas à ce que Visual Studio peut faire, s'il vous plaît ne marque pas cela comme un double à cause de cela. Posté Wiki de la Communauté parce que je n'essaie pas d'être un représentant de pute.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Facilement la différence la plus importante est que le MSTest support est intégré à Visual Studio et fournit les tests unitaires, la couverture de code et se moquant de l'aide directement. Afin de faire le même genre de choses dans les externes (tiers) de l'unité de frameworks de test nécessite généralement plusieurs cadres (un framework de test unitaire et d'un moqueur cadre) et d'autres outils pour faire des analyse de couverture de code.
Les plus faciles façon d'utiliser le MSTest unité des outils de test est d'ouvrir le fichier que vous souhaitez créer des tests unitaires pour, cliquez droit dans la fenêtre de l'éditeur et choisissez l'option "Créer des Tests Unitaires..." du menu contextuel dans le menu contextuel. Je préfère mettre mes tests unitaires dans un projet distinct, mais c'est juste personnel perference. Ceci vous permettra de créer une sorte de "modèle" de la classe de test, qui contiendra des méthodes d'essai pour vous permettre de tester toutes les fonctions et les propriétés de votre classe. À ce stade, vous devez déterminer ce que cela signifie pour le test de réussite ou d'échec (en d'autres termes, de déterminer ce que devrait être la fonction d'un ensemble donné d'intrants).
Généralement, vous finissez par écrire les tests qui ressemble à ceci:
Ce dit que pour la grandeur nommée stringVal, la Longueur de la propriété doit être égale à 4 après la cession.
Les ressources énumérées dans l'autre thread devrait fournir un bon point de départ pour understandng ce que le test unitaire est en général.
Les tests unitaires de la structure de VS est similaire à NUnit dans son utilisation. Il est intéressant (et utile) de la fonction de celui-ci ne diffèrent de NUnit de manière significative. VS les tests unitaires peuvent être utilisés avec un code qui n'a pas été écrit avec les tests unitaires dans l'esprit.
Vous pouvez construire un framework de test unitaire, après que la demande est écrite parce que la structure du test permet à l'extérieur de la méthode de référence des appels et l'utilisation de la rampe et le démontage de code à préparer le test invironment. Par exemple: Si vous avez une méthode dans une classe qui utilise les ressources qui sont externes à la méthode, vous pouvez les créer dans la montée en puissance de la classe (qui VS crée pour vous) et puis le tester dans l'unité de la classe de test (également créé pour vous par VS). Une fois le test terminé, le démontage de la classe (encore une fois...fournies par VS) permettra de libérer des ressources et de nettoyage. L'ensemble de ce processus existe à l'extérieur de votre demande ainsi à ne pas interférer avec le code de base.
La VS framework de test unitaire est en fait un très bien mis en œuvre et facile à utiliser. Le meilleur de tous, vous pouvez l'utiliser avec une application qui n'a pas été conçu avec les tests unitaires dans l'esprit (quelque chose qui n'est pas facile avec NUnit).
Première chose que je voudrais faire est de télécharger une copie de TestDriven.Net pour l'utiliser comme un test runner. Cela va ajouter un menu contextuel qui vous permettra d'exécuter des tests individuels par un clic droit dans la méthode d'essai et en sélectionnant Exécuter le Test(s). Cela fonctionne aussi pour tous les tests dans une classe (clic droit dans la classe, mais en dehors d'une méthode), d'un espace de noms (clic droit sur le projet ou dans l'espace de noms à l'extérieur d'une classe), ou un ensemble de la solution (clic droit sur la solution). Il ajoute également la capacité d'exécuter des tests avec la couverture (intégré ou nCover) ou le débogueur à partir du même menu clic-droit.
Autant que la mise en place des tests, généralement je m'en tiens à un projet de test par projet et une classe de test pour la classe sous test. Parfois, je vais créer des classes de test pour les aspects qui fonctionnent à travers beaucoup de classes, mais généralement pas. La manière classique de je les créer est d'abord de créer le squelette de la classe -- pas de biens, pas de constructeur, mais avec la première méthode que je veux tester. Cette méthode déclenche une NotImplementedException.
Une fois le squelette de classe est créée, j'ai utiliser le clic droit de Créer des Tests Unitaires dans la méthode en cours de test. Cette brins une boîte de dialogue qui vous permet de créer un projet de test ou sélectionnez-en une. J'ai créer, et le nom de façon appropriée, un nouveau projet de test et de demander à l'assistant créer les classes. Une fois cela fait, vous pouvez également créer le privé des fonctions accesseurs de la classe dans le projet de test. Parfois, ces le besoin d'être mis à jour (recréé) si votre classe est modifiée en profondeur.
Maintenant vous avez un projet de test et de votre premier essai. Commencez par modifier le test pour définir un comportement souhaité de la méthode. Écrire le code nécessaire à l' (à peine) de passer le test. continuer à écrire des tests/écriture des codes, en précisant plus le comportement de la méthode jusqu'à ce que le comportement de la méthode est définie. Ensuite, passer à la méthode suivante ou de la catégorie, selon le cas jusqu'à ce que vous avez assez de code pour remplir la fonction que vous travaillez sur.
Vous pouvez ajouter plus de et les différents types de tests. Vous pouvez également configurer votre contrôle de code source pour exiger que certains ou tous les tests passent avant le check-in.