我正在使用 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);
}
关于c# - 如何对无限等待的监听器进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17729118/