2011-11-28 99 views
1

如果谷歌測試方法被調用超過預期時間,我該如何讓谷歌測試失敗?如果預期呼叫過度飽和,Google測試/模擬測試失敗

這裏是例子:

class MockIO : iIO 
{ 
    MOCK_METHOD1(IO_Read, void (uint8_t)); 
}; 

TEST(case, test) 
{ 
    MockIO io; 
    EXPECT_CALL(io, IO_Read(0x01)).Times(10); 
    for (i=0; i<20; i++) 
     io.IO_Read(0x01); 
} 

按我的理解,我應該嘗試

EXPECT_CALL(io, IO_Read(0x01)).Times(10).Throw(exception); 

但在不使用異常的嵌入式項目。

任何想法?

回答

0

但是在嵌入式項目中沒有使用例外。

這並不重要,因爲您不應該構建您的單元測試,以便在嵌入式平臺上運行,而是爲您的PC運行。

設定期望可以減少到這一點:

EXPECT_CALL(io, IO_Read(0x01)).Times(AtLeast(10)); 

不滿足該條件是要拋出異常。

爲了使googlemock庫對不合格的預期拋出異常:

::testing::GTEST_FLAG(throw_on_failure) = true;