【问题标题】:How to pause a Boost unit test?如何暂停 Boost 单元测试?
【发布时间】:2012-10-11 20:11:39
【问题描述】:

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

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

【问题讨论】:

    标签: c++ unit-testing boost


    【解决方案1】:

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

    这种方法的一些优点:

    1. 单元测试的运行时间不取决于所讨论的计时器的时间长短(一旦您以小时/天为单位测量计时器,这一点就变得很重要)
    2. 您的单元测试是确定性的,不会因线程调度的变幻莫测而随机失败。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      猜你喜欢
      • 2021-08-04
      • 1970-01-01
      • 2013-05-31
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 2020-05-23
      • 1970-01-01
      相关资源
      最近更新 更多