2010-02-02 4 views
2

Nous sommes actuellement la migration de NMock2 à RhinoMocks et nous avons du mal à reproduire ce code:Dynamiquement aux événements abonner RhinoMocks

foreach (EventInfo e in typeof(MarketMapPopupIMVPView).GetEvents()) 
    Expect.Once.On(mockView).EventAdd(e.Name, new TypeMatcher(typeof(EventHandler))); 

Essentiellement, cela a été placé à l'intérieur d'un modèle pour les contrôles MVC pour assurer que les développeurs utilisant le modèle câblait en réalité les événements du présentateur répertoriés dans la vue. Le problème est que nous ne connaissons pas les événements d'avance et que nous plaçons l'attente par son nom, ce que nous ne semblons pas trouver un moyen de faire dans RhinoMocks.

+0

Je ne pense pas que ce soit possible. (J'ai essayé d'affirmer un appel à e.AddEventListener, puis de construire dynamiquement une action avec des arbres d'expression à passer à AssertWasCalled, mais aucun n'a fonctionné.) Considérez que vous devriez tester ce que le gestionnaire d'événements fait quand l'événement est levé , pas simplement qu'il a été câblé. Vous ne pouvez pas vraiment faire cela sans connaître l'événement. –

+0

Ouais, c'était juste quelque chose de gratuit que nous avons gagné avec NMock en le plaçant dans certains de nos templates pour nous assurer que les développeurs étaient en train de câbler leurs évènements. Ce n'est pas un gros problème, mais ce serait bien. –

Répondre