Ecco parte di implementazione del codice in classe padre:Come aumentare un evento in un test che utilizza Moq?
handler.FooUpdateDelegate += FooUpdate(OnFooUpdate);
protected abstract void OnFooUpdate(ref IBoo boo, string s);
ho nel metodo di prova gestore deriso:
Mock<IHandler> mHandler = mockFactory.Create<IHandler>();
Questa ...
mHandler.Raise(x => x.FooUpdateDelegate += null, boo, s);
... non è lavoro. Dice:
System.ArgumentException: Impossibile trovare l'evento per il metodo attach o detach. Void set_FooUpdateDelegate (FooUpdate).
Voglio sollevare OnFooUpdate
in modo da attivare il codice da testare in classe figlio.
Domanda: Come posso aumentare il delegato (gestore di eventi non comune) con Moq?
Se ho perso completamente il punto, ti prego di informarmi.
Grande risposta. Una cosa che vorrei ricordare è che potrebbe essere necessario mantenere la proprietà FooUpdateDelegate, chiamando mockMyClass.SetupAllProperties() – Eternal21
@ Eternal21 Il Mock sta utilizzando l'implementazione concreta della proprietà da MyClass, quindi funziona così com'è. Se stessimo prendendo in giro un'interfaccia (ad esempio, IMyClass), non ci sarebbe stata alcuna implementazione concreta e sarebbe stata necessaria la creazione della proprietà sulla simulazione. –
AlanT
Questo era esattamente il mio caso. – Eternal21