J'utilise Visual Studio 2010 Beta 2. J'en ai un [TestClass]
, qui a un [TestInitialize]
, [TestCleanup]
et quelques-uns [TestMethods]
.
Chaque fois qu'une méthode de test est exécutée, les méthodes d'initialisation et de nettoyage sont également exécutées!
J'avais l'impression que le [TestInitialize]
& [TestCleanup]
ne devrait être exécuté qu'une seule fois, par essai local.
Est-ce exact? Sinon, quelle est la bonne façon de procéder?
il s'agit plutôt d'un comportement standard pour les suites de tests: configuration et démontage avant et après chaque test. La philosophie est que les tests ne doivent pas dépendre les uns des autres. Si vous voulez un autre comportement, vous devriez probablement utiliser des objets statiques qui persistent entre chaque test.
la source
Exemple complet tiré de la documentation Microsoft :
la source
Les méthodes marquées avec l'attribut [TestInitialize ()] sont utilisées pour préparer les aspects de l'environnement dans lequel votre test unitaire s'exécutera. Le but est d'établir un état connu pour l'exécution de votre test unitaire. Vous pouvez utiliser la méthode [TestInitialize ()] pour copier, modifier ou créer certains fichiers de données que votre test utilisera.
Créez des méthodes marquées avec l'attribut [TestCleanUp {}] pour ramener l'environnement à un état connu après l'exécution d'un test. Cela peut signifier la suppression de fichiers dans des dossiers ou le retour d'une base de données à un état connu. Un exemple de ceci est de réinitialiser une base de données d'inventaire à un état initial après avoir testé une méthode utilisée dans une application de saisie de commande.
Pour plus d'informations, veuillez consulter: http://msdn.microsoft.com/en-us/library/ms182517%28v=vs.100%29.aspx
la source