5

我正在使用 MSTest,Vs2010。我有一种情况,带有 while 循环的方法调用AutoResetEvent.WaitOne。我可以从我的测试方法触发这个事件;它将迭代一次,然后再次等待该事件被触发。

在这种情况下,我无法断言任何事情。我怎样才能对这些方法进行单元测试?

谢谢

4

1 回答 1

3

我建议Task在您的单元测试中使用 a 在单独的线程中初始化循环。

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);

 }
于 2013-07-18T16:33:26.127 回答