我想使用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 Sheet和Cook Book,但无法弄清楚这一点。
答案 0 :(得分:0)
由于我工作场所现有代码的错误复制粘贴,此错误是我的疏忽。我将与社区分享这一点,以便将来可以帮助某人避免沮丧和浪费时间。
此错误与方法的const
无关,但这是因为EXPECT_CALL
的第一个参数不正确。将其从myFoo
更改为myMockFoo
以正确设置期望值。
生成的Mock函数是Mock类MockFoo
的成员,而不是实际的类Foo
。因此,模拟对象应该传递给EXPECT_CALL
。