具有非虚拟方法的类中的 GMock 和模拟构造函数

发布于 2024-11-07 15:28:07 字数 167 浏览 0 评论 0原文

我需要模拟一个只有非虚拟方法的类。本班 有一个复制构造函数。如何为此编写一个模拟方法。我得到一个 如果我只是使用编译器错误,

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哽咽笑 2024-11-14 15:28:08

您不能使用 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文