2013-07-18 65 views

回答

3

我建議在你的單元測試使用Task初始化一個單獨的線程循環。

public void TestMyLoop() 
{ 

    var myLooper = new Looper(); 

    Task t = Task.Run(() => myLooper.BeginWorking()); // BeginWorking is an infinite loop, it will never end! 

    myLooper.AddAnItemToProcess(new Item()); 

    Thread.Sleep(5000); // wait 5 seconds, alternatively hook into and `await` some completion event. 

    // assert here 
    Assert.That(myLooper.processedItems == 1); 

} 
+0

它看起來很有希望,一定會試一試,並會更新你們。謝謝 – shankbond

+0

非常感謝。 – shankbond

+0

這個結果對於我在while循環(監視文件傳輸)中觸發委託的情況也很有用,只有在文件傳輸完成後纔會中斷。使用上述方法,我能夠「嘲笑」上傳完成並完成傳輸。使用單獨的線程是一個簡單的解決方案! –