2010-01-12 5 views
2

Je vous écris des tests unitaires pour les fonctionnalités de base CRUD utilisant VS 2010.Tests Commande dans VS 2008/2010

Mon but est de créer de nouvelles entités, les relire, les mettre à jour, puis de les supprimer.

Une approche évidente consiste à effectuer un test unitaire pour chacune de ces opérations et à les exécuter dans cet ordre. Sauf que je ne peux pas spécifier directement l'ordre dans lequel les tests doivent s'exécuter.

Je comprends que je peux créer un test ordonné. Cependant, après cela, et en sélectionnant "Exécuter tous les tests en solution", le test ordonné est exécuté en plus des tests individuels. Ce n'est pas vraiment ce que je cherche, d'autant plus qu'il n'y a aucune garantie de l'ordre pour les tests individuels ... certains d'entre eux peuvent échouer "aléatoirement" selon l'ordre dans lequel ils sont exécutés.

Cela semble mener à la conclusion que je devrais exécuter individuellement mes tests ordonnés si je souhaite utiliser cette fonctionnalité.

Sinon, je pourrais écrire un gros test pour C + R + U + D par entité, mais ce n'est pas aussi atomique que je le voudrais.

Quelle est la meilleure pratique (sans recourir à xUnit) pour ce type de test?

+0

MbUnit dispose d'une multitude d'options, y compris les rollbacks db, configurés en tant qu'attributs que vous pouvez appliquer aux tests. –

+0

Yup. J'ai beaucoup utilisé MbUnit. Essayer de comprendre ce qu'il est possible de sortir de la boîte avec VS 2008/2010. –

Répondre

2

Vous pouvez créer une liste de tests contenant uniquement les tests ordonnés que vous souhaitez exécuter. Toutefois, la meilleure pratique pour les tests unitaires est de ne pas se fier à la commande de test. Les tests ordonnés sont Erratic Tests car ils se comportent différemment s'ils sont exécutés dans un ordre différent (vous l'avez déjà découvert) ou s'ils sont exécutés en tant que tests autonomes au lieu d'une partie de la suite de tests ordonnée. Faites-vous la faveur et abandonnez l'idée des tests ordonnés. Cela ne mènera qu'à plus de douleur.

+0

Suggérez-vous qu'il est préférable de mettre toutes les étapes nécessaires pour tester chaque cas d'utilisation en un seul test, même si ce test devient potentiellement important? –

+0

En passant, j'aime ce lien! –

+0

Non, je dis que chaque opération devrait avoir son propre test - celui qui vérifie que vous pouvez créer un élément, un autre test (indépendant) qui vérifie que vous pouvez le mettre à jour, etc. –

Questions connexes