如何在const方法上设置EXPECT_CALL?

时间:2016-02-23 05:58:46

标签: c++ googletest gmock

我想使用GMock为EXPECT_CALL设置以下方法:

class Foo {
    virtual void Bar() const;
};

我定义了相应的Gmock类,如下所示:

class MockFoo : public Foo {
    MOCK_CONST_METHOD0(Bar, void());
};

然后,当然,我有这些类的对象。

Foo myFoo;
MockFoo myMockFoo;

在测试中,我声明EXPECT_CALL如下:

EXPECT_CALL(myFoo, Bar);

这不起作用,我收到编译错误:

'class Foo' has no member named 'gmock_Bar'

我似乎无法弄清EXPECT_CALL方法const的方法。我在这里做错了什么?

我调查了Cheat SheetCook Book,但无法弄清楚这一点。

1 个答案:

答案 0 :(得分:0)

由于我工作场所现有代码的错误复制粘贴,此错误是我的疏忽。我将与社区分享这一点,以便将来可以帮助某人避免沮丧和浪费时间。

此错误与方法的const无关,但这是因为EXPECT_CALL的第一个参数不正确。将其从myFoo更改为myMockFoo以正确设置期望值。

生成的Mock函数是Mock类MockFoo的成员,而不是实际的类Foo。因此,模拟对象应该传递给EXPECT_CALL