如何暂停Boost单元测试?

时间:2012-10-11 20:11:39

标签: c++ unit-testing boost

我正在为我创建的计时器编写一个单元测试,我遇到了我经常遇到的其他项目的问题。我想创建一个单元测试,启动我的计时器,等待片刻,然后在计时器运行后检查我的计时器的值。然后我可以测试我的计时器中的所有功能。

有办法做到这一点吗?我在文档中没有看到任何内容。如果这不是一个好习惯,请告知我应该做什么。

2 个答案:

答案 0 :(得分:5)

如果您对涉及时间的任何事情进行单元测试,您可能希望虚拟化您的时间概念,以便您可以手动更改它。根据您用于计时器的内容,这可能更容易或更难(或内置),但是一旦完成,您可以使用“setVirtualTime(time)”之类的内容编写单元测试。

这种方法的一些优点:

  1. 单元测试的运行时间并不取决于相关计时器的持续时间(一旦您以小时/天为单位测量计时器,这就变得很重要)
  2. 您的单元测试是确定性的,并且不会随机失败,具体取决于线程调度的变化。

答案 1 :(得分:1)

也许在单元测试中调用sleep()