2010-12-07 5 views
0

Est-ce que quelqu'un a implémenté TDD avec VSTO 2010 en utilisant Rhino Mocks et NUnit?Rhino Mocks & NUnit avec l'erreur VSTO 2010

Est-il possible de se moquer des objets Office COM?

Je reçois l'erreur suivante:

System.TypeLoadException

Impossible de charger le type 'ApplicationProxy1de359cb29054a3a9f7c0da38e8ee0cc' de l'assemblage 'DynamicProxyGenAssembly2, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = null'. Le type est marqué comme éligible pour l'équivalence de type, mais soit il possède des paramètres génériques, soit il ne s'agit pas d'une structure, d'une interface COM importée, d'une énumération ou d'un délégué.

Répondre

0

Voir How to test a COM dependent object in C# - ce problème est également survenu avec Moq mais est supposé être fixed on the trunk. Comme @Gutzofter, je vous recommande de créer votre propre wrapper d'interface pour l'objet COM.

+0

Donc dites-vous que je dois écrire mes propres wrappers pour Microsoft.Office.Interop.PowerPoint? – alex

+0

@alex - Je ne voudrais pas tout emballer. Vous allez devoir tester votre code COM actuel manuellement (a-t-il créé le PowerPoint correctement?). Écrivez votre classe qui appelle l'interop, puis ajoutez une interface pour votre classe. Moque ça. Cela a l'avantage de cacher l'implémentation; Si vous autorisez plus tard une bibliothèque tierce à créer la présentation PowerPoint, votre interface n'a pas besoin d'être modifiée (ni le code de votre client). – TrueWill

0

Je me suis moqué joyeusement des objets Excel avec NSubstitute depuis quelques semaines maintenant. Essayez ça?