2010-08-13 7 views
0

Existe-t-il un bon moyen de tester le résultat de la méthode IDisposable.Dispose()?Comment écrire un test unitaire pour le résultat de Dispose()

Merci pour toutes vos réponses.

+0

Je pense que cela dépend de ce que vous essayez de faire dans la méthode Dispose. Pouvez-vous expliquer un peu plus ce qui doit se passer dans la méthode Dispose? – mpenrow

+0

Qu'est-ce que vous essayez de tester, exactement? –

+0

J'ai une classe qui héberge des ressources, comme une IConnection, une ISession et un cache (IDictionary) qui doit être nettoyé/fermé. – MacX

Répondre

0

Après avoir appelé la méthode .Dispose(), assurez-vous que tous les getters/setters de propriétés et de propriétés renvoient un ObjectDisposedException.

http://msdn.microsoft.com/en-us/library/system.objectdisposedexception.aspx

+1

Blech. 'ObjectDisposedException' est un motif de code horrible. –

+0

D'autres idées alors? – MacX

+0

Honnêtement, je n'ai jamais utilisé 'IDisposable' pour envelopper les ressources qui doivent être libérées. Je l'ai seulement utilisé pour tirer parti des blocs 'using' pour déclencher un événement quand mon objet est utilisé. Aussi, s'il vous plaît ne dites pas simplement que quelque chose est un modèle de code horrible, même si c'est, juste fournir une raison ou un lien vers le contenu sur la raison pour laquelle il est. –

2

Pour test unitaire la méthode Dispose, invoquez Dispose puis vérifiez vos versions moqués de votre connexion, session et cache. Assurez-vous qu'ils sont correctement fermés et nettoyés.

Questions connexes