假設(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 的頭文件classMockClient :publicClient{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)
疑難解答
圖片精選