向 gtest 测试用例添加延迟
Add delay to gtest Test Case
我正在使用 google 测试框架来测试硬件以太网交换机。某些操作(e.x。启用 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,那么这将成为一个 OS 特定问题(不是标准的 c++)
我正在使用 google 测试框架来测试硬件以太网交换机。某些操作(e.x。启用 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,那么这将成为一个 OS 特定问题(不是标准的 c++)