C++ #在C+中定义可模拟虚拟+;

C++ #在C+中定义可模拟虚拟+;,c++,C++,我发现这个代码: #定义可模拟虚拟 你知道为什么有人会这样定义虚拟吗?我只是个古玩做这件事有什么意义,这样你就可以: class ClassIdLikeToTest{ mockable void mymethod(){ //Behavior I would like to be different in my tests } } 然后为测试构建将mockable定义为virtual,以便可以重写从类继承的方法 您编写测试并使用一个继承自ClassIdLikeT

我发现这个代码:

#定义可模拟虚拟

你知道为什么有人会这样定义虚拟吗?我只是个古玩做这件事有什么意义,这样你就可以:

class ClassIdLikeToTest{
    mockable void mymethod(){
         //Behavior I would like to be different in my tests
    }
}
然后为测试构建将mockable定义为virtual,以便可以重写从类继承的方法

您编写测试并使用一个继承自ClassIdLikeToTest并重写mymethod的类,只要mockable是虚拟的,它就可以工作,但是您可以将其删除用于生产构建,这些函数将不是虚拟的,并且您不必为虚拟调用付费。

所选名称mockable也是描述性的。声明为“可模拟”的函数可以被“模拟”。。也就是说,模拟函数可以用于测试目的