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也是描述性的。声明为“可模拟”的函数可以被“模拟”。。也就是说,模拟函数可以用于测试目的