class Config { public: std::string GetSetting(const std::string& key) const { // 实际实现 } }; class MockConfig : public Config { public: MOCK_METHOD(const std::string&, GetSetting, (const std::string& key), (const, override)); }; TEST(ConfigTest, GetSetting) { MockConfig mock_co...
MOCK_METHOD0(PenUp,void()); MOCK_METHOD0(PenDown,void()); MOCK_METHOD1(Forward,void(intdistance)); MOCK_METHOD1(Turn,void(intdegrees)); MOCK_METHOD2(GoTo,void(intx,inty)); MOCK_CONST_METHOD0(GetX,int()); MOCK_CONST_METHOD0(GetY,int()); }; 您不需要在其他地方定义这些模拟方法 - ...
classTestUser:publicUser{public:MOCK_METHOD2(Login,bool(conststd::string&,conststd::string&));MOCK_METHOD1(Pay,bool(int));MOCK_METHOD0(Online,bool());}; 可以发现其方法的声明非常有规律。MOCK_METHOD后跟一个数字,该数字表明需要mock的函数有几个参数(除去this)。像第5行,Online()方法没有入参,...
void TestCase::AddTestInfo(TestInfo * test_info) { test_info_list_.push_back(test_info); test_indices_.push_back(static_cast<int>(test_indices_.size())); } for (int test_index = 0; test_index < total_test_case_count();test_index++) { GetMutableTestCase(test_index)->Run(); ...
class MockFunction<R(A1, ..., An)> { public: MOCK_METHODn(Call, R(A1, ..., An)); }; ---恢复内容结束--- CheatSheet文档中包含了GMock所有常用的东西,看了这个基本上就可以用它了,本文翻译自:https://github.com/google/googletest/blob/master/googlemock/docs/CheatSheet.md 一、定义一个模拟...
GoogleMock是个很强大的东西,测试一个模块的时候,可能涉及到和其他模块交互,可以将模块之间的接口mock起来,模拟交互过程。 1. Makefile里面需要加入 -lgmock才能正常连接 AM_LDFLAGS=-lpthread -lc -lm -lrt -lgtest -lgmock 1. 2. 可以手工生成Mock类,也可以使用脚本生成 ...
googletest gtest/gtest.h libgtest.a libgtest_main.a 当不想写 main 函数的时候,可以直接引入 libgtest_main.a; g++ sample.cc -o sample -lgtest -lgtest_main -lpthread g++ sample.cc -o sample -lgmock -lgmock_main -lpthread 否则
MOCK_METHOD1(writeBuf, int(int len)); MOCK_METHOD0(closeSock, void()); }; TEST(subpubHandler, sub1pub1) { MockCSubscriber subObj(5); MockCPublisher pubObj(5); subObj.m_iRecvBufLen = 1000; pubObj.m_iRecvBufLen = 1000; ...
GoogleMock是个很强大的东西,测试一个模块的时候,可能涉及到和其他模块交互,可以将模块之间的接口mock起来,模拟交互过程。 1. Makefile里面需要加入 -lgmock才能正常连接 AM_LDFLAGS=-lpthread -lc -lm -lrt -lgtest -lgmock 2. 可以手工生成Mock类,也可以使用脚本生成 ...
MOCK_METHOD1(readBuf,int(intlen)); MOCK_METHOD1(writeBuf,int(intlen)); MOCK_METHOD0(closeSock,void()); }; 其中,CSubscriber的构造方法必须有一个int型的fd,而readBuf和writeBuf都只接收一个int型的参数,而closeSock方法 没有参数传递。于是我使用了MOCK_METHOD0和MOCK_METHOD1这两个宏来声明想MOCK...