我找到了这段代码:
#define mockable virtual
你知道为什么有人会像这样定义虚拟吗?我只是好奇这是做什么的重点
答案 0 :(得分:10)
所以你可以这样做:
class ClassIdLikeToTest{
mockable void mymethod(){
//Behavior I would like to be different in my tests
}
}
然后将mockable定义为测试构建的虚拟,以便您可以覆盖从该类继承的方法。
你编写测试并使用一个继承自ClassIdLikeToTest的类并覆盖mymethod,只要mockable是虚拟的,它就可以工作,但是你可以删除它用于生产版本,那些函数不会是虚拟的,你也不会不支付虚拟电话费。