4
我正在使用MSTest,Vs2010。我有一個while循環方法調用AutoResetEvent.WaitOne的情況。我可以從我的測試方法中觸發此事件;它會迭代一次,然後再次等待這個事件被觸發。我該如何測試無限等待的聽衆?
我無法在這種情況下斷言任何事情。我該如何測試這些類型的方法?
感謝
我正在使用MSTest,Vs2010。我有一個while循環方法調用AutoResetEvent.WaitOne的情況。我可以從我的測試方法中觸發此事件;它會迭代一次,然後再次等待這個事件被觸發。我該如何測試無限等待的聽衆?
我無法在這種情況下斷言任何事情。我該如何測試這些類型的方法?
感謝
我建議在你的單元測試使用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);
}
它看起來很有希望,一定會試一試,並會更新你們。謝謝 – shankbond
非常感謝。 – shankbond
這個結果對於我在while循環(監視文件傳輸)中觸發委託的情況也很有用,只有在文件傳輸完成後纔會中斷。使用上述方法,我能夠「嘲笑」上傳完成並完成傳輸。使用單獨的線程是一個簡單的解決方案! –