HippoMocks:是否可以模拟非虚拟方法?

时间:2015-04-16 13:08:37

标签: c++ unit-testing mocking hippomocks

我开始使用HippoMocks编写单元测试。我想知道是否有可能模拟非虚拟类方法?

首先看代码似乎表明框架只支持虚方法。但是因为它支持简单C函数的模拟,所以应该可以对非虚拟类方法执行相同操作。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

这不是不可能的,但它会导致非常奇怪的使用机制 - 或者没有线程安全的可能性。

C函数总是被嘲笑。在这种情况下,它总是重定向到模拟,你不能再调用原文。

C ++虚函数仅针对请求的对象进行模拟,任何其他对象仍然具有常规函数。

C ++非虚函数看起来像一个虚函数,但只能在每个类级别上进行模拟。您的编译器也很可能会内联这些函数,使其不太可靠。

我从某个人那里得到了一个盲目应用它的补丁,并且它遇到了所描述的问题。您需要100%确定没有内联对该成员函数的任何访问,这几乎是不可能的。