C++ 将延迟添加到gtest测试用例中

C++ 将延迟添加到gtest测试用例中,c++,sleep,googletest,C++,Sleep,Googletest,我正在使用google测试框架测试硬件以太网交换机。某些操作(例如启用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.g

我正在使用google测试框架测试硬件以太网交换机。某些操作(例如启用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));
}
TEST\F(RSTP,enableRSTP){
snmp.set(OID,整数32(3));
//更改值后,开关不可用
//所以我需要在请求之前等待
自动结果=snmp.get(OID);
自动恢复=标准::获取(结果);
断言EQ(res,整数32(3));
}

如何实现这一点?

如其中一条评论所述,您可以使用(c++14):


如果你不使用>=c++11,那么这就变成了一个特定于操作系统的问题(不是标准的c++)

我不确定这是否可以,但你可以使用一些简单的东西,比如
std::this\u thread::sleep\u,用于
你在使用c++11吗?如果不是,你使用什么操作系统?@wernerrasmus我在VS2017上使用/std:c++最新版本option@Alexandr那么,,见我的答案谢谢!就像我需要它一样
#include <chrono>
#include <thread>
TEST_F(RSTP, enableRSTP) {
  ...
  using namespace std::chrono_literals;
  std::this_thread::sleep_for(2s);
  ...
}
std::chrono::seconds(2)