2012-12-11 2 views
1

Supposons que vous testez une fonction complexe ou une procédure de magasin complexe. Comment effectuez-vous l'automatisation?Réflexions sur l'automatisation des tests unitaires

i avait deux options:

  1. Essai de référence:
    i préparer des données d'entrée, je lance le test manuellement dans un premier temps, puis-je obtenir les données de sortie. Après vérification, je pense que les données de sortie sont correctes. Ensuite, j'utilise les données de sortie comme "données de base". Dans le dernier test, je compare les données de sortie avec les "données de base", s'il y a des changements, ils peuvent être bug ou autre chose. Le testeur met en œuvre la fonction ou mémorise la procédure d'une autre manière. Pour tester, il compare la sortie de la fonction du testeur et la sortie de la fonction du développeur.

L'option 1 est plus facile à mettre en œuvre dans l'automatisation.
L'option 2 est plus difficile car le testeur doit réécrire la fonction.

Y at-il d'autres options? merci

Répondre

0

D'une manière générale, les tests unitaires ne devraient probablement pas tester si la base de données renvoie les données correctes. Il y a trop de choses qui pourraient mal tourner. La base de données pourrait être en panne, l'utilisateur pourrait tuer les tests avant de réinitialiser la ligne de base. C'est plus un test d'intégration qu'un test unitaire.

J'utilise généralement une couche d'accès aux données mockée avec des données simulées pour les tests.

voir les liens here et here

Tout cela dit, quand je DOIS pour créer des tests unitaires qui tirent des données de la base de données, je programme généralement mes tests pour mettre à jour la base de données avec des données de test, puis je lance ma base de données appelle/procs stockés et test contre cette ligne de base.

+0

ok, donc vous choisissez l'option 2? – user1894171

+0

Je suppose que c'est plus de # 1, sauf que vous créez les données de base une seule fois et le forcer au début du test. –