[英]i want to write gmock google test cases for the below scenario
我在Singleton類中有一組函數。 我想在單例類中模擬一個函數。 讓我們采取下面的代碼。函數setname()將返回classyyy的setname()函數中的字符串。 所以在這里我想測試返回值。請告訴我如何為這種情況編寫測試用例。
class mockBtMxxx : public BTMxxx
{
public:
MOCK_METHOD2(setname, string(const int& id, const string& name));
};
// Test case for Setting Local Device Friendly Name.
TEST(TestBTC, GMockSetNameTest)
{
mockBtMxxx mock_Btm;
int id = 12345;
string str = "Hello";
EXPECT_CALL(mock_Btm, setname(_,_)).WillOnce(Return("Hello"));
}
我收到以下錯誤:錯誤:'BTMxxx :: BTMxxx()'是私有gmock-actions.h:491:66:錯誤:沒有匹配函數調用'ImplicitCast_(const char *&)'
對於第一個錯誤,您需要使派生類可調用基類的構造函數。 雖然您沒有顯示class BTM
的聲明,但很容易猜到您當前將構造函數聲明為private
。 我建議protected
BTMxxx::BTMxxx()
以便它可以被mock類的默認構造函數調用。
至於你的第二個錯誤, setname
的返回類型可能被推斷為const char*
。 您需要提供一個std::string
對象,以使其與確切的返回類型匹配。
要更全面地了解您的問題,請提供BTMxxx
類的實際代碼,並指定您正在使用的平台和編譯器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.