#include <gmock/gmock.h>#include<string>classFooInterface {public:virtual~FooInterface() {}public:virtualstd::stringgetArbitraryString() =0;//mock的函数必须是虚函数(gmock的局限性)};classMockFoo:publicFooInterface {//需要继承已有的类public: MOCK_METHOD0(getArbitraryString, std::string());//宏...
MOCK_METHOD的一般形式为: MOCK_METHOD(ReturnType, MethodName, (Args...)); MOCK_METHOD(ReturnType, MethodName, (Args...), (Specs...)); 然后我们写一个模拟count的方法: class MockFoo : public Foo { public: MOCK_METHOD(int, count,(int)); }; 前三项都是非常清晰的。Specs是修饰符,常用的...
MOCK_METHOD2(open, int(const char*, int)); MOCK_METHOD4(read, int(const char*, char*, int, int &)); MOCK_METHOD1(close, int(int)); }; TEST(FileDataLoadTest, LoadData) { MockFileApi *api = new MockFileApi; FileDataLoad fileLoad((IFileApi*)api); int file_load_size =...
第一步我们需要Mock接口类 代码语言:javascript 代码运行次数:0 复制 Cloud Studio代码运行 classTestUser:publicUser{public:MOCK_METHOD2(Login,bool(conststd::string&,conststd::string&));MOCK_METHOD1(Pay,bool(int));MOCK_METHOD0(Online,bool());}; 可以发现其方法的声明非常有规律。MOCK_METHOD后跟一个...
classMyMock{public:MOCK_METHOD(ReturnType,MethodName,(Args...));MOCK_METHOD(ReturnType,MethodName,(Args...),(Specs...));}; 前3个参数包含: 函数返回类型,函数名,函数传参。 第4个参数(Specs)为限定符: const——重写const方法时需要带上 ...
MOCK_METHOD1(findAccountForUser, Account(const std::string&)); MOCK_METHOD1(updateAccount, void(const Account&)); }; 类MockAccountManager是继承数据库DB方法类AccountManager的。其中MOCK_METHOD1为gmock的宏定义。头文件中还有其他类似宏定义,如MOCK_METHOD0,MOCK_METHOD2... ...
这里,MOCK_METHOD宏用于声明一个需要被mock的方法。第一个参数是返回类型,第二个参数是方法名,第三个参数是参数列表(这里为空),第四个参数是可选的修饰符(如override,用于表示该方法将重写基类中的虚方法)。 实例化mock对象,并设置期望的行为和返回值(如果需要): 在你的测试代码中,实例化MockMyClass对象,并使...
MOCK_METHOD1(SetBar, void(Bar value)); }; 在上面的代码中,我们使用MOCK_METHOD宏来定义了两个模拟方法:GetBar和SetBar。 2.创建Mock对象:接下来,你需要创建一个Mock对象。例如: MockFoo foo; 3.设置Mock对象的期望行为:你可以使用GMock提供的函数来设置Mock对象的期望行为。例如,你可以使用ON_CALL宏来设置...
MOCK_METHOD0(open, int()); MOCK_METHOD0(close, int()); MOCK_METHOD1(add_output_column, int(const ObSqlExpression &expr)); }; 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ...
MOCK_METHOD(int, GetY, (), (const, override)); }; 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 创建Mock类的步骤: MockTutle继承Tutle 找到Tutle的一个虚函数 在public的部分,写一个MOCK_METHOD() 将虚函数的函数签名复制进MOCK_METHOD()中,加两个逗号: ...