मैं आमतौर पर एक अज्ञात प्रतिनिधि और वाइंडंडल का उपयोग करता हूं। उदाहरण के लिए मेरे पास SetRemoteTableName नामक मेरे प्रस्तुतकर्ता में एक फ़ंक्शन है। जब नाम सेट होता है, तो यह भी एक घटना उठाता है। मैं उस घटना का परीक्षण करना चाहता हूं, जो असीमित रूप से उठाया गया है। परीक्षण इस तरह दिखता है:
[TestMethod]
[WorkItem(244)]
[Description("Ensures calling SetRemoteTableName with a valid name works
AND raises the RemoteTableNameChange event")]
public void SetRemoteTableNamePositive()
{
string expected = "TestRemoteTableName";
string actual = string.Empty;
AutoResetEvent are = new AutoResetEvent(false);
SQLCECollectorPresenter presenter = new SQLCECollectorPresenter();
presenter.RemoteTableNameChange += new EventHandler<GenericEventArg<string>>(
delegate(object o, GenericEventArg<string> a)
{
actual = a.Value;
are.Set();
});
presenter.SetRemoteTableName(expected);
Assert.IsTrue(are.WaitOne(1000, false), "Event never fired");
Assert.AreEqual(actual, expected);
}
यह शानदार है - धन्यवाद! – womp