簡體   English   中英

我想為下面的場景編寫gmock google測試用例

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM