使用非虚方法的类中的GMock和mocking构造函数

时间:2011-05-17 16:25:22

标签: c++ gmock

我需要模拟一个只有非虚方法的类。这个班 有一个复制构造函数。如何为此编写模拟方法。我得到了 如果我只使用

,编译错误
MOCK_METHOD1(classname, void(classname& source)); 

提前致谢。

1 个答案:

答案 0 :(得分:6)

你不能用gmock模拟非虚函数。所以考虑的第一个选择是使函数成为虚拟的。如果你担心使函数虚拟化的性能开销,确保这确实是一个问题(通过测量),通常原因不是。

如果不可能使虚函数成为可能,则使用模板的替代解决方案。有关此技术的详细信息,请参阅this question;有关使用此技术的优缺点,请参阅this question