Question

Je me demande comment les gens réinitialisent actuellement leurs données et nettoient les restes de test pour leurs tests WatiN / Wartir?

Par exemple, supposons qu'un test ajoute un utilisateur dans le système et que le nom d'utilisateur soit unique. Évidemment, la première exécution sans aucun utilisateur devrait fonctionner correctement, mais la deuxième exécution échouera sans intervention manuelle.

Était-ce utile?

La solution

Il existe plusieurs stratégies que vous pouvez utiliser pour cela. Je suppose que vous utilisez WatiN, avec des tests Nunit ou VS Unit pour exécuter vos tests.

Utiliser les transactions Une approche utilisée lors des tests unitaires consiste à "emballer", l'ensemble du test dans une transaction et à la fin du test, annule la transaction. Pour cela, vous pouvez utiliser System.Transactions.

Créer une "page de remplacement" Créez une page dans votre application qui utilise la logique métier existante pour supprimer vos données. Cette page aurait besoin d'être sécurisée et idéalement même pas déployée en production. C’est cette approche que je recommanderais.

Appeler un service Web Développez un service Web ou appelez-en un directement à partir du niveau application de l'application pour effectuer la suppression. Vous aurez probablement besoin de développer cela aussi.

Nettoyer directement Construisez des classes dans votre code de test pour accéder aux données et les nettoyer.

Dans tous ces cas, vous aurez besoin de nettoyer avant et après avoir exécuté votre test, c’est-à-dire dans la configuration et les méthodes de nettoyage du test. La raison pour laquelle vous devez le faire deux fois est que vous devez supposer que votre test a échoué et n’a pas été nettoyé correctement.

Utilisez Linq to Sql autant que vous le souhaitez, si Linq to sql est utilisé, cela fonctionne en mémoire et englobe automatiquement la mise à jour dans une transaction. Si vous n'appelez simplement pas le SubmitChanges (); méthode alors vous devriez bien, mais je n'ai pas testé cela moi-même.

Autres conseils

J'ai demandé à un développeur de créer un script qui réinitialisera la base de données. Après une série de tests, j’appelle ce script et démarre à partir d’une base de données vierge.

Mike - votre question n’est pas unique pour Watir / WatiN. Il s'applique à tous les tests d'interface utilisateur. Recherchez donc des solutions similaires pour Selenium, Windmill et même des tests d'intégration sans tête (HtmlUnit, tests d'API, etc.). J'ai personnellement répondu à cette question plusieurs fois sur StackOverflow.

WatiN est destiné aux tests d'interface utilisateur.

Pour tester le scénario que vous recherchez, vous pouvez générer un identifiant utilisateur à l'aide du code c # qui le rendra unique (par rapport à la façon dont il est stocké lors de la création du test).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top