मैं टिप्पणी के साथ सहमत हूं कि आप केवल घटना को उठाएंगे और जांच लेंगे कि आप जिस हैंडलर को सब्सक्राइब करना चाहते हैं उसे शामिल किया गया है। लेकिन वहाँ जाँच करने के लिए मौसम हैंडलर जुड़ा था एक तरीका है, बहुत सुंदर नहीं सोचा:
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();
तुम सिर्फ जांच करने के लिए है कि किसी भी हैंडलर आप "WhenArgumentsMatch" भाग को छोड़ सकते हैं जुड़ा था चाहते हैं।
स्रोत
2011-12-23 14:20:18
बस एक सुझाव: यह जांचने के बजाय कि आपका कोड ईवेंट की सदस्यता लेता है, केवल यह जांचें कि जब यह ऐसी घटना प्राप्त करता है तो यह वास्तव में कुछ करता है। इस तरह आप परीक्षण कर सकते हैं जैसे "जब घटना उठाई जाती है तो फू को बुलाया जाता है" जो वर्णन करता है कि क्या होना चाहिए। –