我正在使用谷歌测试框架来测试硬件以太网交换机。某些操作(例如启用 RSTP)需要一些时间才能进行。所以我需要在测试用例中实现某种 Sleep() 函数:

TEST_F(RSTP, enableRSTP) {
    snmp.set(OID, Integer32(3));
    // after changing value switch is unavailable
    // so I need to wait before request
    auto result = snmp.get(OID);
    auto res = std::get<Integer32>(result);
    ASSERT_EQ(res, Integer32(3));
}

我该如何实现?

最佳答案

正如其中一条评论中提到的,您可以只使用 (c++14):

#include <chrono>
#include <thread>
TEST_F(RSTP, enableRSTP) {
  ...
  using namespace std::chrono_literals;
  std::this_thread::sleep_for(2s);
  ...
}

...或对于 c++11,将 2s 替换为:
std::chrono::seconds(2)

如果您不使用 >= c++11,那么这将成为特定于操作系统的问题(不是标准的 c++)

关于c++ - 为 gtest 测试用例添加延迟,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46467980/

10-13 08:34