Die Anwendung, die ich testen bin, ist voll von Ereignissen basierend auf kundenspezifischen Teilnehmer, wie dies:Wie richte ich ein Ereignis in FakeItEasy für ein Ereignis basierend auf einem benutzerdefinierten Delegaten ein?
public delegate void NameChangedHandler(string name);
public event NameChanged OnNameChanged;
...
public void ChangeYourName(string newName)
{
if(NameChanged != null)
NameChanged(newName);
}
ich die Klasse produzieren diese Ereignisse verspotten wollen und diese Ereignisse der Klasse unter Test zu erhöhen.
Ich weiß, dass FakeItEasy Raise.With()
verwenden kann, um Ereignisse mit den traditionellen Ereignissignaturen MyHandler(object sender, EventArgs e)
oder MyHandler(EventArgs e)
auszulösen, aber ich weiß nicht, was ich in meiner Situation tun soll.
Irgendwelche Ideen?
Ich habe genau das gleiche heute gerade gerannt. Kann hier jemand helfen? – jdscolam
Ich glaube, die Antwort ist, dass FakeItEasy das nicht kann. Meine Lösung bestand darin, mein Event umzufunktionieren, um EventArgs zu übernehmen. – pduncan
Es gibt ein Problem für dieses https://github.com/FakeItEasy/FakeItEasy/issues/30 –