2009-05-06 111 views
1

我正在爲主要是遺留代碼的大型C#項目開發新功能。 我正在處理的區域處理XML架構消息,爲它們的傳輸創建一個時間表,並將它們放入一些傳統計時器代碼中,這些計時器代碼會通知我何時應該發送它們。Visual Studio測試項目可以處理事件和委託嗎?

雖然我對他們來說是新手,但Visual Studio測試項目證明是有用的,因爲我可以測試我的代碼,而無需試圖獲得完整的系統並運行(這可能需要30分鐘的測試硬件!)。

我已經靜態測試了我的事件處理代碼,但現在想動態地這樣做。 這可能嗎?如果是這樣,我該如何着手讓測試項目在不超時的情況下等待事件?

回答

2

如果我正確理解你,你可以使用一個等待句柄來指示事件並讓你的測試項目等待事件句柄發出信號。

void Foo() 
{ 
    var eventSource = ...; 
    var waitHandle = new ManualResetEvent(false); 
    eventSource.SomeEvent += (sender, e) => waitHandle.Set(); 

    ... 

    // Wait for the event to be fired. 
    waitHandle.WaitOne(); 
} 
+0

我明白你要去哪裏了。我可以看到捕獲由遺留定時器觸發的實際事件很有用,但我不確定它是否允許我在測試代碼內測試事件處理程序。 今天我將努力查看一些基於此的東西。 謝謝。 – ChrisBD 2009-05-08 08:28:05

相關問題