aquí es parte de la implementación del código en la clase padre:¿Cómo se genera un evento en una prueba que usa Moq?
handler.FooUpdateDelegate += FooUpdate(OnFooUpdate);
protected abstract void OnFooUpdate(ref IBoo boo, string s);
que tengo en el método de ensayo manejador burlado:
Mock<IHandler> mHandler = mockFactory.Create<IHandler>();
Este ...
mHandler.Raise(x => x.FooUpdateDelegate += null, boo, s);
... no es trabajando. Dice:
System.ArgumentException: No se pudo localizar el evento para adjuntar o separar el método Void set_FooUpdateDelegate (FooUpdate).
Quiero aumentar OnFooUpdate
por lo que desencadena el código que se probará en la clase infantil.
Pregunta: ¿Cómo puedo elevar delegado (controlador de evento no común) con Moq?
Si me olvidé por completo del punto, por favor, enséñame.
Gran respuesta. Una cosa que mencionaría es que puede que tenga que persistir en la propiedad FooUpdateDelegate, llamando a mockMyClass.SetupAllProperties() – Eternal21
@ Eternal21 El simulacro está utilizando la implementación concreta de la propiedad de MyClass, por lo que funciona bien tal como está. Si nos burláramos de una interfaz (por ejemplo, IMyClass), entonces no habría una implementación concreta y sería necesario configurar la propiedad en el simulacro. –
AlanT
Ese fue exactamente mi caso. – Eternal21