12 votes

Utilisation d'une classe de base pour la configuration et le démontage des tests unitaires

En supposant que Visual Studio.NET 2008 et MsTest sont utilisés pour exécuter les tests unitaires. Lorsqu'un système est basé sur un conteneur de services et l'injection de dépendances, les tests unitaires nécessitent naturellement la mise en place de services.

Ces services doivent-ils plutôt être configurés dans une classe de base dont dérivent tous les tests unitaires ou dans chaque classe de test unitaire ? S'ils doivent être dans une classe de base, y a-t-il un moyen de faire en sorte que le service TestInitialize y ClassInitialize peuvent être exécutées sans qu'il soit nécessaire de les appeler depuis la classe dérivée, par exemple base.Initialise ?

8voto

Anthony Mastrean Points 8582

Le cadre MSTest recherchera dans l'objet entier (toutes les classes de base) les méthodes marquées Test* . Comme lorsque vous les déclarez dans la classe de test unitaire, vous ne devez pas les appeler explicitement.

6voto

Dominic Hopton Points 6052

Avec 2008, vous devriez pouvoir avoir [TestInitialize] sur une classe de base, et tant que vous n'ajoutez pas un autre [TestInitialize] quelque part dans la hiérarchie, il devrait être appelé. Vous pouvez également faire des choses avec des méthodes virtuelles.

0voto

Anthony Mastrean Points 8582

Je préfère le Test* y Class* Les méthodes marquées doivent être sur la classe de test unitaire réelle. Si vous les définissez sur une classe de base, vous ne pouvez pas leur ajouter des activités spécifiques au test. Utilisez plutôt les constructeurs et finaliseurs statiques et d'instance de votre classe de base.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X