我需要模拟一个只有非虚方法的类。这个班 有一个复制构造函数。如何为此编写模拟方法。我得到了 如果我只使用
,编译错误MOCK_METHOD1(classname, void(classname& source));
提前致谢。
答案 0 :(得分:6)
你不能用gmock模拟非虚函数。所以考虑的第一个选择是使函数成为虚拟的。如果你担心使函数虚拟化的性能开销,确保这确实是一个问题(通过测量),通常原因不是。
如果不可能使虚函数成为可能,则使用模板的替代解决方案。有关此技术的详细信息,请参阅this question;有关使用此技术的优缺点,请参阅this question。