MOCK_METHOD
时间: 2023-12-17 08:03:50 浏览: 165
C-Mock:C Mock是Google Mock的扩展,允许函数模拟
MOCK_METHOD是Google Test框架中的一个宏,用于定义一个mock方法。它的语法如下:
```cpp
MOCK_METHOD(return_type, method_name, (args));
```
其中,return_type是方法的返回类型,method_name是方法名,args是方法的参数列表。这个宏会自动生成一个名为method_name的mock方法,并将其注册到Google Mock框架中。
在引用中,MOCK_METHOD0实际上是一个封装了GMOCK_METHOD0_的宏,用于定义无参数的mock方法。而在引用中,gmock##Method方法调用了FunctionMocker模板类的With方法,该方法返回了一个MockSpec模板对象,用于指定mock方法的参数匹配规则。
下面是一个使用MOCK_METHOD定义mock方法的例子:
```cpp
#include <gmock/gmock.h>
class MockFoo {
public:
MOCK_METHOD(int, bar, (int x, int y));
};
TEST(MockFooTest, BarTest) {
MockFoo foo;
EXPECT_CALL(foo, bar(1, 2)).WillOnce(testing::Return(3));
EXPECT_EQ(foo.bar(1, 2), 3);
}
```
以上代码定义了一个名为MockFoo的mock类,其中定义了一个名为bar的mock方法,该方法有两个int类型的参数x和y,并返回一个int类型的值。在测试用例中,我们创建了一个MockFoo对象foo,并使用EXPECT_CALL宏指定了bar方法的参数匹配规则和返回值。最后,我们调用了bar方法,并验证了其返回值是否符合预期。
阅读全文