我想为下面的场景编写gmock google测试用例

时间:2015-02-28 07:45:42

标签: unit-testing googletest googlemock gmock

我在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 *&)'

1 个答案:

答案 0 :(得分:0)

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

关于您的第二个错误,setname的返回类型可能被推断为const char*。您需要提供std::string对象才能使其与确切的返回类型匹配。

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

相关问题