【发布时间】:2010-11-21 12:40:20
【问题描述】:
继this 问题之后...我正在尝试对以下场景进行单元测试:
我有一个类,它允许调用方法来执行某些操作,如果失败,请稍等片刻并调用该方法。
假设我想调用一个方法 DoSomething()...但是如果 DoSomething() 抛出异常,我希望能够重试调用它最多 3 次,但之间等待 1 秒每次尝试。在这种情况下,单元测试的目的是验证当我们调用 DoSomething() 3 次并在每次重试之间等待 1 秒时,所花费的总时间 >= 3 秒。
不幸的是,我想测试它的唯一方法是使用秒表计时......它有两个副作用......
- 执行测试需要 3 秒...我通常希望我的测试在毫秒内运行
- 运行测试的时间会相差 +/- 10 毫秒左右,这可能会导致测试失败,除非我考虑到这种差异。
如果有一种方法可以模拟这种对时间的依赖性,这样我的测试能够更快地运行并且结果相当一致,那就太好了。不幸的是,我想不出办法……所以我想我会问一下,看看你们中是否有人遇到过这个问题……
【问题讨论】:
标签: unit-testing time mocking