當一個被模擬的方法在沒有設定期望值的情況下被呼叫時,gmock會發出一個警告:
GMOCK警告。
無趣的模擬函式呼叫 - 回傳default值。
函式呼叫。getAddress(@0x563e6bbf5530 16位元組物件< F0-3A 32-6B 3E-56 00-00 30-A7 BF-6B 3E-56 00-00>。 )
回傳。""
注意:你可以安全地忽略上述警告,除非這個呼叫應該不發生。 做不要通過盲目添加EXPECT_CALL() 如果你并不打算強制呼叫它。 詳見https://github.com/google/googletest/blob/master/docs/gmock_cook_book.md#knowing-when-to-expect。
通過在注入前用NiceMock<>包裝模擬,可以抑制此類警告。是否有可能獲得同樣的效果,但只針對模擬中的某些方法?
例如,考慮這個模擬(使用舊版本的gtest撰寫):
class PocoMock : public Poco
{
public:
PocoMock() //
: Poco()
{
}
MOCK_CONST_METHOD1(listen, void(Poco::Net::ServerSocket& rSocket) )。
MOCK_CONST_METHOD1(start, void(Poco::Net::TCPServer& rServer))。
MOCK_CONST_METHOD1(stop, void(Poco::Net::TCPServer& rServer)) 。
MOCK_CONST_METHOD1(
getAddress。
std::string(const Poco::Net::StreamSocket& rSocket))。
}
是否可以告訴gmock抑制對getAddress()的意外呼叫的警告,而不是對listen()、start()和stop()的警告?
uj5u.com熱心網友回復:
你可以明確地說,你可以有任何數量的呼叫getAddress:
EXPECT_CALL(mock, getAddress(testing::_))。 Times(testing::AnyNumber() )。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/331857.html
標籤:
下一篇:Ruby更改哈希的鍵值
