class MockFoo { public: MOCK_METHOD(std::pair<bool, int>, GetPair, ()); // Won't compile! MOCK_METHOD(bool, CheckMap, (std::map<int, double>, bool)); // Won't compile! };Solution 1 - wrap with parentheses:{: .good}
public里只需要写interface类里的接口,并且用宏变量MOCK_METHOD来包装。这里附带说一下,外面有一些教程的写法是MOCK_METHODX即后面加了一个表示变量数量的数字,这个是gmock的旧版写法,新版的话只要无脑MOCK_METHOD即可。后面变量依次是返回类型、mock的函数名、输入参数类型,override标志。 mock类只需要写头文件,不需要...
You must always put a mock method definition (MOCK_METHOD) in apublic:section of the mock class, regardless of the method being mocked beingpublic,protected, orprivatein the base class. This allowsON_CALLandEXPECT_CALLto reference the mock function from outside of the mock class. (...