2010-10-21 3 views
4

J'essaie d'écrire un test qui couvre ma gestion des erreurs dans une classe particulière. Cette classe est à l'écoute pour un événement d'erreur avec la signature suivante:Comment générer un événement à l'aide de Rhino Mocks avec un paramètre ref bool

OnError(int ErrorNumber, string ErrorText, ref bool retry) 

Le problème est avec la variable ref bool à la fin. J'utilise Rhino Mocks pour créer une interface pour les tests et simulation lorsque je tente de soulever l'erreur en utilisant les éléments suivants:

bool retry = false; 
AdapterMock.Raise(x => x.Error += null, 0, "0", ref retry); 

Il ne sera pas même compiler, en me disant qu'il ne peut pas convertir de ref bool à l'objet .

Si je change la signature à:

bool retry = false; 
AdapterMock.Raise(x => x.Error += null, 0, "0", retry); 

je compile bien, mais le test échoue avec System.InvalidOperationException: Paramètre n ° 3 est System.Boolean mais devrait être System.Boolean &

Je Je tire mes cheveux sur celui-ci, comment puis-je soulever correctement cet événement dans mon simulacre?

+5

Toute possibilité de récrire le délégué OnError aux normes .NET pour les arguments - à savoir (expéditeur d'objet, OnErrorEventArgs args)? – PatrickSteele

Répondre

0

Essayez:

AdapterMock.Raise(x=> x.Error += null, Arg<int>.Is.Equal(0), Arg<string>.Is.Equal("0"), Arg.Ref(ref Is.Equal(retry))); 
Questions connexes