接口原型
class Port{
virtual int process(const string& strReq, string& strRep );
}
mock接口
class MockPort{
MOCK_METHOD(int, process, (const string& strReq, string& strRep ));
}
测试用例
using testing::_;
using testing::Assign;
using testing::Return;
using testing::SetArgReferee;
TEST(TestCaseName, TestName) {
CToBeTest obj; //其中的func调用了Port的process接口
auto spMockPort = std::make_shared<MockPort>();
string str = "expect process ref to be assignment"
EXPECT_CALL(*spControlPort, Process(_, _))
.WillOnce(testing::DoAll(SetArgReferee<1>(str), Return(0)));
obj.m_spPort = spMockPort
obj.func();
}