Je sais que la réponse peut différer pour chaque cadre de test. Mais pour ceux que vous connaissez, que devrait-il se passer?La méthode d'installation de la suite de tests est-elle exécutée une fois pour chaque test, ou seulement une fois pour toutes?
Répondre
En MSTest vous avez TestInitializeAttribute
Lors de l'exécution d'un test de charge, la méthode marquée avec cet attribut se déroulera une fois pour chaque itération d'utilisateur virtuel dans le test. Si vous devez effectuer une fois les opérations d'initialisation, qui s'appliquent à l'ensemble du test, utilisez le ClassInitializeAttribute.
AssemblyInitializeAttribute
est exécuté une fois pour tous les tests dans toutes les classes.
Dans NUnit, vous avez TestFixtureSetUp
qui s'exécute une seule fois avant tous les tests de la série de tests et SetUp
qui s'exécute avant l'exécution de chaque méthode de test.
Cela dépend naturellement des cadres, et pour les réponses concrètes à cela, vous devriez vérifier la documentation pertinente.
Les méthodes de configuration pour les tests ou les appareils sont utiles, mais elles ne doivent pas être utilisées de manière abusive. Si les tests unitaires ont complex set up methods, vous pourriez dire qu'ils sont plus des tests d'intégration, et devraient donc être refactorisés. Un test complexe mis en place est une odeur de code. D'un autre côté, la mise en place de méthodes utilisées judicieusement peut réduire la duplication et rendre les tests plus lisibles et maintenables.
Dans junit4 vous avez des annotations disponibles pour marquer les deux types de méthodes de configuration/démontage. Voici le résumé:
- exécutant la configuration avant chaque suite de tests utilisation
@BeforeClass
- course abattez après chaque série de tests utilisation
@AfterClass
- configuration en cours d'exécution avant chaque méthode d'essai dans l'utilisation de la suite
@Before
- en cours d'exécution abattre après chaque méthode de test dans votre suite utiliser
@After