具有非虚拟方法的类中的 GMock 和模拟构造函数
我需要模拟一个只有非虚拟方法的类。本班 有一个复制构造函数。如何为此编写一个模拟方法。我得到一个 如果我只是使用编译器错误,
MOCK_METHOD1(classname, void(classname& source));
请提前致谢。
i need to mock a class that has only non virtual methods. This class
has a copy constructor. How to I write a mock method for that. I get a
compiler error if I just use the
MOCK_METHOD1(classname, void(classname& source));
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不能使用 gmock 模拟非虚拟函数。因此,要考虑的第一个替代方案是将函数设为虚拟。如果您担心使函数虚拟化的性能开销,请确保这确实是一个问题(通过测量),因为通常它不是。
如果无法使函数虚拟化,另一种解决方案是使用模板。有关此技术的详细信息,请参阅此问题以及这个问题了解使用它的利弊。
You can't mock non-virtual functions with gmock. So the first alternative to consider is to make the functions virtual. If you are concerned with performance overhead of making the functions virtual make sure that this really is a problem (by measuring), cause generally it ain't.
An alternative solution if there is no possibility to make the functions virtual is to use templates. See this question for details on this technique and this question for pros and cons of using it.