假設(shè)Client的定義如下
class
Client
{
......
public
:
virtual bool GetData(std::string& data);
......
};
我們只需要重寫Getdata的方法,并且當(dāng)參數(shù)data被傳進(jìn)來時(shí),我們可以返回特定的值。
這一套方法,google已經(jīng)提供了很好的一套框架:gmock
下面介紹一下它的用法
#include
"client.h"
//被mock的類的頭文件
#include <gmock gmock.h=
""
>
// gmock 的頭文件
class
MockClient :
public
Client
{
public
:
MockClient():Client() {}
MOCK_METHOD1(GetData, bool(std::string&));
}</gmock>
這里使用了一個(gè)宏MOCK_METHOD1
原形是MOCK_METHOD#1(#2, #3(#4) )
#1表示被mock的函數(shù)參數(shù)個(gè)數(shù),#2表示被mock的函數(shù)名稱,#3表示被mock的函數(shù)返回值,#4表示被mock的函數(shù)參數(shù)列表
這樣,一個(gè)“樁”就“打”好了。
新聞熱點(diǎn)
疑難解答
圖片精選