La plupart des réponses ici semblent l'adresse de l'unité de tester les meilleures pratiques en général (quand, où, pourquoi et quoi), plutôt qu'à écrire les tests eux-mêmes (comment). Puisque la question semble assez spécifique sur le "comment", je pensais que je poste ce, prises à partir d'un "brown bag" présentation que j'ai réalisée dans mon entreprise.
Womp 5 des Lois de l'Écriture de Tests:
1. L'utilisation de long, descriptif de la méthode de test des noms.
- Map_DefaultConstructorShouldCreateEmptyGisMap()
- ShouldAlwaysDelegateXMLCorrectlyToTheCustomHandlers()
- Dog_Object_Should_Eat_Homework_Object_When_Hungry()
2. Écrire vos tests dans un Arrangement/Act/Affirmer un style.
- Bien que cette stratégie de l'organisation
a été autour pendant un certain temps et
appelé beaucoup de choses, l'introduction
de la "AAA" de l'acronyme a récemment
un excellent moyen pour obtenir ce travers.
De faire de tous vos tests compatible avec
AAA style rend facile à lire et à
maintenir.
3. Toujours fournir un message d'échec avec vos Affirmations.
Assert.That(x == 2 && y == 2, "An incorrect number of begin/end element
processing events was raised by the XElementSerializer");
- Un simple mais enrichissante pratique qui rend évident dans votre coureur de l'application de ce qui a échoué. Si vous ne fournissez pas un message, vous devriez obtenir quelque chose comme "s'Attendre à vrai, était faux" dans votre échec de sortie, ce qui fait que vous avez à aller lire le test pour savoir quel est le problème.
4. Commentaire la raison pour laquelle le test – quelle est l'hypothèse d'affaires?
/// A layer cannot be constructed with a null gisLayer, as every function
/// in the Layer class assumes that a valid gisLayer is present.
[Test]
public void ShouldNotAllowConstructionWithANullGisLayer()
{
}
- Cela peut sembler évident, mais ce
la pratique permettra de protéger l'intégrité
de vos tests de personnes qui n'ont pas
comprendre la raison derrière le test
dans la première place. J'ai vu beaucoup de
les tests d'obtenir supprimé ou modifié
ont été parfaitement bien, tout simplement parce que
la personne n'a pas compris la
les hypothèses que le test a été
la vérification.
- Si le test est trivial ou la méthode
le nom est suffisamment clair, il
peut être permis de laisser la
commentaire off.
5. Chaque test doit toujours revenir à l'état de toutes les ressources qu'il touche
- Mocker, si possible, afin d'éviter
ressources réelles.
- Le nettoyage doit être effectué à l'essai
niveau. Les Tests ne doivent avoir aucun
la dépendance sur l'ordre d'exécution.