假设Client的定义如下
class
Client
{
......
public
:
virtual bool GetData(std::string& data);
......
};
我们只需要重写Getdata的方法,并且当参数data被传进来时,我们可以返回特定的值。
这一套方法,google已经提供了很好的一套框架:gmock
下面介绍一下它的用法
#include
"client.h"
//被mock的类的头文件
#include <gmock gmock.h=
""
>
// gmock 的头文件
class
MockClient :
public
Client
{
public
:
MockClient():Client() {}
MOCK_METHOD1(GetData, bool(std::string&));
}</gmock>
这里使用了一个宏MOCK_METHOD1
原形是MOCK_METHOD#1(#2, #3(#4) )
#1表示被mock的函数参数个数,#2表示被mock的函数名称,#3表示被mock的函数返回值,#4表示被mock的函数参数列表
这样,一个“桩”就“打”好了。
新闻热点
疑难解答