在C ++中#define mockable virtual

时间:2011-03-10 09:58:47

标签: c++

我找到了这段代码:

#define mockable virtual

你知道为什么有人会像这样定义虚拟吗?我只是好奇这是做什么的重点

1 个答案:

答案 0 :(得分:10)

所以你可以这样做:

class ClassIdLikeToTest{
    mockable void mymethod(){
         //Behavior I would like to be different in my tests
    }
}

然后将mockable定义为测试构建的虚拟,以便您可以覆盖从该类继承的方法。

你编写测试并使用一个继承自ClassIdLikeToTest的类并覆盖mymethod,只要mockable是虚拟的,它就可以工作,但是你可以删除它用于生产版本,那些函数不会是虚拟的,你也不会不支付虚拟电话费。