2010-05-05 11 views
3

J'utilise Unity pour faire des AOP, quelqu'un pourrait-il me donner une idée de la façon de les tester unitaire?comment tester l'unité AOP?

+0

Avez-vous trouvé une façon concrète de le faire? J'ai lu la réponse mais ce n'est pas très clair? –

Répondre

1

Est-ce que votre implémentation "aspect" est une classe qui implémente ICallHandler (ou très similaire IInterceptionBehavior dans Unity 2.0) et est déjà ajoutée au pipeline d'exécution de l'objet intercepté?

Si oui, vous pouvez le tester séparément tout à fait normalement. Ce que vous testez est Invoke méthode - appelez-le avec maquette créé pour IMethodInvocation, mis en place pour avoir l'état de votre objet avant d'appeler l'aspect et avec GetNextHandlerDelegate pour simuler l'objet mis en place pour représenter votre appel d'objet intercepté.

Vous pouvez alors affirmer:

  • sur votre cible délégué si approprié appels sont faits - à savoir tester si l'aspect breks/ne rompt pas l'exécution correctement, si l'appel arguments ont été correctement modifié, etc.
  • sur le résultat de l » Invoke (IMethodReturn objet ) - à savoir tester si le résultat de retour a été correctement modifié, si l'exception a été levée, etc.