Gtest打桩函数,gtest打桩


假设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的函数参数列表

这样,一个“桩”就“打”好了。

相关内容

    暂无相关文章