如何在 const 方法上设置EXPECT_CALL
How to setup EXPECT_CALL on a const method?
我想使用 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
方法。我在这里做错了什么?
我查看了备忘单和烹饪书,但无法弄清楚。
这个错误是我的疏忽,因为我的工作场所现有代码的复制粘贴错误。我将与社区分享这一点,以便将来可以帮助某人摆脱沮丧和浪费时间。
此错误与方法const
性无关,但这是因为EXPECT_CALL
的第一个参数不正确。将其从myFoo
更改为myMockFoo
以正确设置期望。
生成的 Mock 函数是 Mock 类MockFoo
的成员,而不是实际的类Foo
。因此,模拟对象应传递给EXPECT_CALL
。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 在C++/Linux中设置单调时钟的一些技巧
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 嵌套在类中时无法设置成员数据
- 需要帮助设置在C++中使用的Potrace
- 如何在自删除后将对象设置为nullptr
- 将指针设置为"nullptr"并不能防止双重删除?
- 如何在Ubuntu中使用cmake设置qt4
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 如何在boost beast http请求中设置http头
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 为什么文件名被设置为一个点,而不是在读取矢量中的文件名时
- 如何在24位SDL_Surface上设置像素的颜色
- std::设置自定义比较器
- 如何设置一个范围来提取我想要获得的信息
- 如何在C/C++中用FD_set Unix设置套接字文件描述符
- 通过选项卡的文本设置QTabWidget顺序
- 将特征矩阵的向量设置为0
- 我可以检测和更改 gcc/g++ 中结构的当前数据对齐设置吗?