【问题标题】:i want to write gmock google test cases for the below scenario我想为以下场景编写 gmock google 测试用例
【发布时间】:2015-02-28 07:45:42
【问题描述】:

我在 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: error: no matching function for call to ‘ImplicitCast_(const char*&)’

【问题讨论】:

    标签: unit-testing googletest googlemock gmock


    【解决方案1】:

    对于您的第一个错误,您需要使基类的构造函数可以从派生类调用。虽然您没有显示class BTM 的声明,但很容易猜到您当前已将构造函数声明为private。我建议制作BTMxxx::BTMxxx()protected,这样它就可以被模拟类的默认构造函数调用。

    至于您的第二个错误,setname 的返回类型可能被推断为const char*。您需要提供一个 std::string 对象,以便它匹配确切的返回类型。

    如需更全面地了解您的问题,请提供BTMxxx 类的实际代码并指定您使用的平台和编译器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-20
      • 1970-01-01
      • 2021-10-04
      • 2021-06-12
      • 1970-01-01
      • 2011-08-14
      相关资源
      最近更新 更多