如何单元测试将在计时器处理程序中调用委托的方法?

时间:2014-10-09 09:07:03

标签: c# unit-testing

我想验证委托调用的正确性,但是我必须等待计时器提升它的事件(大约5秒),所以我应该在我的单元测试代码中做一些像Thread.Sleep(5000)这样的操作,我认为这不是单元测试的最佳实践。

这种情况还有其他更好的想法吗?

2 个答案:

答案 0 :(得分:2)

模拟计时器并提升事件而无需等待

答案 1 :(得分:2)

您需要解耦使用计时器的代码并使其依赖于某些抽象。让我们说你自己的接口ITimer并将其作为依赖项注入。

然后很容易模拟ITimer立即举起事件。