Etkinliği yükseltmeyi ve abone olmak istediğiniz işleyicinin çalıştırıldığını kontrol etmeyi öneren yoruma katılıyorum. Ama bir işleyici bağlıydı Hava kontrol etmek için bir yol yoktur, çok güzel değil düşündü:
public interface IHaveAnEvent
{
event EventHandler MyEvent;
}
// In your test...
var fake = A.Fake<IHaveAnEvent>();
var handler = new EventHandler((s, e) => { });
fake.MyEvent += handler;
A.CallTo(fake).Where(x => x.Method.Name.Equals("add_MyEvent")).WhenArgumentsMatch(x => x.Get<EventHandler>(0).Equals(handler)).MustHaveHappened();
sadece herhangi işleyici siz "WhenArgumentsMatch" bölümünü atlayabilirsiniz bağlı olduğunu kontrol etmek istiyorsanız
.
Sadece bir öneri: Kodunuzun etkinliğe abone olduğunu test etmek yerine, yalnızca bu tür bir etkinlik aldığında gerçekten bir şey yaptığını test edin. Bu şekilde "Ne zaman gündeme geldiyse Foo çağrılır" gibi bir test yapıp neyin olması gerektiğini açıklar. –