我目前正在写一个简单的,基于计时器的C#迷你应用程序,它每k秒执行一个动作n次。
我正在尝试采用一种测试驱动的开发风格,所以我的目标是对应用程序的所有部分进行单元测试。
所以,我的问题是:有没有一个好的方法来对基于计时器的类进行单元测试?
在我看来,问题是有一个很大的风险,那就是测试将花费令人不安的长时间来执行,因为它们必须等待很长时间才能实现所需的操作。
特别是当一个人想要真实的数据(秒),而不是使用框架允许的最小时间分辨率(1ms?)。
我为操作使用了一个模拟对象,以注册操作被调用的次数,因此操作实际上不需要任何时间。
发布于 2008-08-15 07:43:18
我所做的是模拟计时器,以及当前的系统时间,我的事件可以立即触发,但就被测试的代码而言,经过的时间是秒。
发布于 2008-08-15 21:01:50
发布于 2008-08-15 07:09:05
我认为在这种情况下,我要做的是测试当计时器滴答作响时实际执行的代码,而不是整个序列。你真正需要决定的是,是否值得测试应用程序的实际行为(例如,如果每个刻度从一个刻度到另一个刻度发生了巨大的变化),或者只测试您的逻辑是否足够(也就是说,每次操作都是相同的)。
由于计时器的行为保证永远不会改变,它要么会正常工作(即,你已经正确配置了它),要么就不会;如果你实际上不需要的话,把它包含在你的测试中似乎是白费力气。
https://stackoverflow.com/questions/12045
复制相似问题