Visual Studio Test项目可以应对事件和代理吗?

时间:2009-05-06 14:17:19

标签: visual-studio events testing

我正在为大型C#项目开发新功能,该项目主要是遗留代码。 我正在处理的区域处理XML模式消息,为它们的传输创建一个计划,并将它们放入一些遗留计时器代码中,这些代码通知我何时应该发送它们。

虽然我是他们的新手,但Visual Studio测试项目证明是有用的,因为我可以测试我的代码,而不是试图让整个系统运行起来(在测试硬件上可能需要30分钟!)。

我已经静态测试了我的事件处理代码,但现在想要动态地执行此操作。 这可能吗?如果是这样,我如何让测试项目等待事件而没有超时?

1 个答案:

答案 0 :(得分: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();
}