2017-09-28 253 views
1

我正在使用谷歌測試框架來測試硬件以太網交換機。某些操作(啓用RSTP的e.x.)需要時間才能繼續。所以,我需要實現某種測試用例內Sleep()功能:添加延遲gtest測試用例

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)); 
} 

如何做到這一點?

+1

我不確定這是否可以,但你可以使用像 'std: :this_thread :: sleep_for' –

+0

你使用的是C++ 11嗎? –

+0

如果不是,您使用的操作系統是什麼? –

回答

1

正如在評論中提及了,你可以只使用(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++)

+0

謝謝!就像我需要它一樣工作 – Alexandr